0
我有兩個shell腳本。爲什麼我的shell腳本不能和cron一起工作?
(工作一個)
$ cat script_nas.sh
#!/bin/bash
for i in `cat nas_filers`
do echo $i
touch /mnt/config-backup/nas_backup/$i.auditlog.0.$(date '+%Y%m%d')
ssh -o ConnectTimeout=5 [email protected]$i rdfile /etc/configs/config_saved > /mnt/config-backup/nas_backup/$i.auditlog.0.$(date '+%Y%m%d')
done
其他
(不工作一個)
$ cat script_san.sh
#!/bin/bash
for i in `cat san_filers`
do echo $i
touch /mnt/config-backup/san_backup/$i.auditlog.0.$(date '+%Y%m%d')
ssh -o ConnectTimeout=5 [email protected]$i rdfile /etc/configs/config_saved > /mnt/config-backup/san_backup/$i.auditlog.0.$(date '+%Y%m%d')
done
的Cron條目是:
$ crontab -l
Filers config save script
0 0 * * * /mnt/config-backup/script_san.sh
0 0 * * * /mnt/config-backup/script_nas.sh
0 0 * * * /mnt/config-backup/delete_file
腳本script_san.sh無法正常工作。 輸出是一樣 SAN備份目錄
san_backup]# ls -lart alln01-na-exch01a.cisco.com.auditlog*
-rw-r--r-- 1 root root 210083 Mar 1 22:24 alln01-na-exch01a.auditlog.0.20150301
[[email protected] san_backup]# pwd
/mnt/config-backup/san_backup
NAS備份目錄
nas_backup]# ls -lart rcdn9-25f-filer43b.cisco.com.auditlog*
-rw-r--r-- 1 root root 278730 Feb 26 00:06 rcdn9-25f-filer43b.cisco.com.auditlog.0.20150226
-rw-r--r-- 1 root root 281612 Feb 27 00:17 rcdn9-25f-filer43b.cisco.com.auditlog.0.20150227
-rw-r--r-- 1 root root 284105 Feb 28 00:02 rcdn9-25f-filer43b.cisco.com.auditlog.0.20150228
-rw-r--r-- 1 root root 284101 Mar 1 00:02 rcdn9-25f-filer43b.cisco.com.auditlog.0.20150301
[[email protected] nas_backup]#
從cron日誌,我可以看到,cron是執行兩個腳本,但輸出script_san.sh
不來了。
將第一行中的'-x'參數添加到您的非工作腳本中,以查看您是否會得到任何輸出。例如。 '#!/ bin/bash -x'併爲'ssh'添加'-v'來調試它。當它以與cron相同的方式手動運行時,它會起作用嗎? – kenorb 2015-03-02 10:51:01
檢查http://stackoverflow.com/tags/crontab/info中的「調試crontab」部分有一些重複出現的問題的解決方案。 – fedorqui 2015-03-02 11:31:45
是的,當我手動運行它時,它工作正常,並創建所有備份文件。但只能手動工作,而不是在計劃時間。根據cron日誌腳本正在運行。 – user3114051 2015-03-02 17:19:48