【发布时间】:2021-11-24 12:22:00
【问题描述】:
我有以下脚本每晚对我的数据库进行备份。
如果我直接通过 shell 执行,一切正常。
但是,如果通过 cron 作为同一用户执行,我会在日志文件中收到此错误:nightly-backups.sh: 9: [[: not found
1
2 timestamp=`date +%Y-%m-%d`;
3
4 ##### EXECUTE THE MYSQL BACKUP #####
5 echo "Starting MySQL Backup:" `date`;
6
7 databases=`/usr/bin/mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
8 for db in $databases; do
9 if [[ "$db" != "information_schema" ]] && [[ "$db" != _* ]] && [[ "$db" != "mysql" ]] && [[ "$db" != "performance_schema" ]] ; then
10 echo "Dumping database: $db"
11 /usr/bin/mysqldump --single-transaction --routines --triggers --databases $db > /home/db_backup/backup/mysql/$db-$timestamp.sql
12 /usr/bin/pigz /home/db_backup/backup/mysql/$db-$timestamp.sql
13 fi
14 done
15
16 echo "Finished MySQL Backup:" `date`;
【问题讨论】:
-
你忘了运行这个 bash 脚本。您应该通过
usr/bin/bash /path/to/nightly-backups.sh在您的 crontab 中调用它。