我有一個shell腳本,它(rsync.sh)用rsync命令得到一個rsync的運行進度:如何通過PHP exec命令
rsync的-rtlv --password文件= /path/to/password/file/file.txt --bwlimit = 5000/local/root/path/$ 1 username @ remoteserver :: remote/root/path/$ 2
然後我運行PHP( rsync.php)執行命令:
exec('/ path/to/shell/script/rsync.sh local/specific/path/remote/specific/path /',$ progress,$ errors);
這一切工作正常。一旦完成,我會得到進展,然後解析它。到目前爲止,我只是在測試幾個較小的文件。但是,一旦投入使用,我預計這將在幾個大型文件上完成,這些文件將花費一個多小時才能完成。我希望能夠看到發生的進展。如果我把--progress標誌放在那裏,我不確定我將如何通過exec來獲取進度。有任何想法嗎?
我想我必須讓exec異步,並以某種方式將進度發佈到可以收集和顯示數據的數據庫。
感謝您的解釋。這就說得通了。所以這意味着將rsync的結果傳送給MySQL。那可能嗎? –
不是直接。例如,你必須有一些其他的參與 - 一個命令行PHP腳本。 – duskwuff
啊,這很有道理。我會怎麼做呢?管道到PHP?例如:rsync命令| php /path/to/php/script.php –