Shell Bash脚本不起作用

时间:2017-04-04 11:54:02

标签: linux bash shell cron

我有备份我的数据库的bash脚本,我在其他服务器上使用它并正常工作...

脚本是:

#!/bin/bash

HOME="/var/www/html"
DB="$HOME/backup/vpn-db-`date +%Y-%m-%d-%H%M%S`.sql.gz"
LOG="$HOME/backup/log.txt"

echo "Backup database `date +%F` u `date +%H:%M:%S`."
echo "Backup database `date +%F` u `date +%H:%M:%S`." >> $LOG

mysqldump -u root -pmypassword mydatabase > $DB

echo "Finish at `date +%H:%M:%S`."
echo "Finish at `date +%H:%M:%S`." >> $LOG

尝试从终端运行时出现错误:

root@vpn:~# sudo bash /var/www/html/backup/cron.sh

/var/www/html/backup/cron.sh: line 2: $'\r': command not found
/var/www/html/backup/cron.sh: line 6: $'\r': command not found
Backup database 2017-04-04 u 13:51:10.
: No such file or directory: /var/www/html
/var/www/html/backup/cron.sh: line 9: $'\r': command not found
: No such file or directory gz /var/www/html
/var/www/html/backup/cron.sh: line 11: $'\r': command not found
Finish at 13:51:10.
: No such file or directory 3: /var/www/html
/var/www/html/backup/cron.sh: line 14: $'\r': command not found

注意 - 文件权限为: 774

1 个答案:

答案 0 :(得分:2)

您可能已经在windoze上编辑了文件,或者通过windoze传输了文件,其中一个传输是二进制文件,另一个是文本模式,因此它有尾随的回车。

尝试dos2unix /var/www/html/backup/cron.sh让CR消失。