我有下面的腳本作為守護程式運行。它檢查上傳檔案中的新 .g??z 檔案。將它移動到正確的位置 en gzip's it。
當我手動運行腳本(作為 root(壞我))時,它可以作業。當守護行程運行時,它給出了錯誤
Dec 22 16:56:06 server watchftp.script[131856]: gzip: /var/www/html/config/MER2-SRX.conf.gz: unexpected end of file
我看不出問題出在哪里。還有誰??
腳本代碼:
#!/bin/bash
savedir='/var/www/html/config/'
inotifywait -m /srv/ftp/upload -e create -e moved_to |
while read dir action file; do
echo "The file '$file' appeared in directory '$dir' via '$action'"
#set correct permissions
chown root:root $dir$file
chmod 755 $dir$file
#create new filename and subdirectory name for save location
newfilename=$( echo -n $file | cut -d '_' -f 1)
parkdir=$( echo -n $newfilename | cut -d '-' -f 1)
mv $dir$file $savedir$newfilename.conf.gz
#check if subdirectory exist otherwise create it
if [[ ! -d $savedir$parkdir ]]; then
echo "create directory $savedir$parkdir"
mkdir $savedir$parkdir
fi
gunzip -dc $savedir$newfilename.conf.gz > $savedir$parkdir/$newfilename.conf
done
uj5u.com熱心網友回復:
您正在處理部分寫入的檔案,因為該create事件將在檔案創建后立即觸發您的腳本,而不是在他們完成撰寫后。
改用close_write事件。當作者完成寫入檔案并關閉它時觸發。它假設他們不會分批寫入檔案,但這非常不尋常。
所以-e create改為-e close_write.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/392370.html
標籤:猛击
上一篇:我如何計算洗掉的檔案?
下一篇:如何從結果中添加數字?
