2011-09-05 181 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并测试。

相关问题