就像用戶的Jens已經說過了,也從我的經驗,除非您使用的是非常簡單的,通常單個命令,你應該堅持腳本文件。所以,就你而言,我會用腳本文件去。我會給你一個例子。
#!/bin/bash
dir_where_files_are_or_not=/filespath
dir_where_files_should_go=/another/filespath
save_dir=/savefiles/path
# ok, lets start by checking if dir contains files
if [ "$(ls -A $dir_where_files_are_or_not)" ]; then
# dir contains files, so lets rsync and mv them
rsync -au $dir_where_files_are_or_not/ $dir_where_files_should_go
mv $dir_where_files_are_or_not/* $save_dir
else
# dir is empty, lets send email
mail -s "DIR IS EMPTY" [email protected] <<< "message"
fi
現在,我只是把這段代碼放在一個文件中。給它一個名稱,例如「chkfiles」並將其保存在一個目錄中(我使用/ usr/local/sbin來存放所有腳本)。
接下來,在shell中運行命令chmod +x /usr/local/sbin/chkfiles
以使文件可執行。然後將腳本添加到您的crontab。
我建議裏面的crontab下面一行:
*/5 6-18 * * 1-6 /bin/bash /usr/local/sbin/chkfiles
我用/斌/慶典呼籲該腳本正確解釋。它現在應該按預期工作。
重要提示:
- 運行腳本之前,您需要更改
dir_where_files_are_or_not
,dir_where_files_should_go
和save_dir
瓦爾您的需求。
- 做不包括在迪爾斯尾隨斜槓,否則的rsync和mv可能不會做你真正想做
問候
怎麼樣有這些條件合適的劇本,並從crontab中調用?像這樣,跟蹤和維護非常複雜。 – fedorqui
謝謝! :)現在我已經改變了兩個命令到{}但它不幫助 – user3310114
只有當我的廣告 退出0; 後面的兩個表彰,我doent得到任何錯誤的郵件但是當文件在DIR我得到一個錯誤信息: /bin/sh:-c:line 0:語法錯誤附近意外的令牌'}' – user3310114