2015-03-02 191 views
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不來了。

+0

將第一行中的'-x'參數添加到您的非工作腳本中,以查看您是否會得到任何輸出。例如。 '#!/ bin/bash -x'併爲'ssh'添加'-v'來調試它。當它以與cron相同的方式手動運行時,它會起作用嗎? – kenorb 2015-03-02 10:51:01

+1

檢查http://stackoverflow.com/tags/crontab/info中的「調試crontab」部分有一些重複出現的問題的解決方案。 – fedorqui 2015-03-02 11:31:45

+0

是的,當我手動運行它時,它工作正常,並創建所有備份文件。但只能手動工作,而不是在計劃時間。根據cron日誌腳本正在運行。 – user3114051 2015-03-02 17:19:48

回答

0

根據我的經驗,大多數時間腳本是手動工作,但不是從crontab,因爲登錄腳本沒有運行。嘗試在腳本的乞討或cron文件的第一行中添加source ~/.bash_profile之類的內容。您是否嘗試(用於調試)通過at命令運行腳本?

相關問題