2011-09-05 182 views
1

我試圖運行在/ var /網絡/備份/腳本的腳本,當我試圖告訴它拉上一個文件,我得到下面的錯誤,SSH bash腳本沒有這樣的文件或目錄

我可以確認/ var/www是主目錄,並且腳本在通過膩子手動運行時工作,但不通過腳本運行。

我使用下面的代碼運行的zip

#!/bin/bash 
unset PATH 

#USER VARS 

HOMEDIR=~/ 
BACKUP_TARG_DIR=~/sites/backups/auto 
BACKUP_TEMP_NAME=tempBackupFile.tar 
BACKUP_TARG_FILE=/var/www/back 
DATE=`/bin/date '+%Y-%m-%d'` 


echo `/bin/pwd`; 

tar -zcvf test.rar /var/www/backups/scripts/tryThis 

#cd /var/www 
#scp "tempBackupFile.tar" 217.41.51.14:~/testfile.rar; 
#tar -zcvf $BACKUP_TEMP_NAME $BACKUP_TARG_FILE; 
echo "SITE-"$DATE; 
下面

是輸出我得到

/var/www/backups/scripts 
./autoBackup.bash: line 18: tar: No such file or directory 
SITE-2011-09-05 

任何一個有任何想法,因爲這是我的命,我所能想到它的作用與bash腳本的運行位置有關。

+0

從putty或從其他腳本調用時是否以同一用戶的身份運行備份腳本? – qbert220

+0

似乎沒有安裝'tar'? –

回答

10

爲什麼你unset PATH?難怪bash不能執行tar

+0

如果你沒有設置PATH,當你想調用它時,你應該使用'tar'的完整路徑。 –

+0

我從教程中複製它,這是我第一次這樣做。我使用'/ bin/tar'工作,但是,你是正確的;刪除未設置的PATH已經工作。這花了幾個小時。 –

1

檢查您的/etc/ssh/sshd_config以確保您沒有設置chroot目錄。如果這樣做,則需要在chroot目錄中創建一個bin目錄,並將必要的二進制文件複製或鏈接到該目錄中。

或者您可以隨時在配置中註釋該行。

無論哪種方式,重新啓動sshd並測試。

相關問題