【问题标题】:Shell Bash Script not workShell Bash 脚本不起作用
【发布时间】:2017-04-04 20:05:10
【问题描述】:

我有用于备份我的数据库的 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

【问题讨论】:

  • @VIPINKUMAR drwxr-xr-x 5 root root 4096 Tra 4 11:02 /var/www/html/

标签: linux bash shell cron


【解决方案1】:

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

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

【讨论】: