2011-05-12 27 views
0

我有一個perl soap服務,我正在使用它將不同的用戶數據放在一起。該服務工作正常,但我想運行「sort -u file1 file2> file1」來合併收集的數據與已經在服務器上的數據。我希望Perl腳本在完成它的任務後調用系統函數允許Apache運行的Perl腳本使用系統()

這是設置Apache或其他的正確權限的問題嗎?

目錄列表:

無功/網絡/ script.pl
無功/網絡/文件1
無功/網絡/文件1
VAR/WWW/index.php文件

任何幫助將是巨大的。謝謝

+0

@Prix文件格式爲.csv格式。我不反對使用別的東西,只是這樣 - 我做得很好。 – jeremyforan 2011-05-12 01:43:02

+0

@Prix我真正感興趣的功能是排序-u,將兩個文件合併爲一個並省略重複項。思考? – jeremyforan 2011-05-12 01:51:30

回答

1
sort -u file1 file2 > file1 

是不會做你說你想要做的。你有沒有嘗試過從命令行?

後運行該命令,文件1將不包含任何在文件1,首先,因爲重定向將痛毆文件1排序前到達採取行動。

sort -u file1 file2 >file3; mv file3 file1 

您似乎想要使用system(),當您嘗試它時發生了什麼?你有沒有收到任何錯誤訊息?

+1

另一種方法是使用'-o'參數:「sort -o file1 file1 file2」。這將輸出到file1,但僅在對file1和file2進行排序後纔會輸出。這是一個相對未知的伎倆。 – 2011-05-12 03:25:39

+0

問題不在於命令。該命令沒有被執行,所以這不是問題 – jeremyforan 2011-05-13 02:08:44

0

不,這是爲包含要寫入的文件的目錄設置正確權限的問題。

找出在其下的用戶ID /組ID的Web服務器進程正在運行(例如,通過尋找與/bin/ps -AH -o user,group,cmd進程表),然後參考Controlling Access to Files in The Linux Cookbook

+0

感謝@daxim這就是我一直在尋找 – jeremyforan 2011-05-13 02:07:54