mysql - cron 在 shell 中运行良好,但在被 cron 调用时失败
问题描述
我有以下脚本每晚对我的数据库进行备份。
如果我直接通过 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`;
解决方案
[[: not found
[[ 是 bash 运算符。似乎 cron 使用另一个 shell 解释器执行脚本。您可以在脚本的第一行提供解释器的路径:
#!/bin/bash
或者
#!/usr/bin/env bash
推荐阅读
- mysql - MySQL 错误 1261 - 如何导入具有空白单元格值的 TSV 文件
- android - React Navigation:如何检测屏幕是否在 TabNavigator 或 DrawerNavigator 内?
- django - 如何正确配置 nginx ssl 以使用 docker-compose 和 django-channel ssl 套接字
- html - 如何将数据从 xml 链接导入 HTML 网站
- java - 用深嵌套括号在分隔符上拆分字符串
- c# - 不能进行同名操作?
- hibernate - 多个实体中 id 的相同序列
- unity3d - 有没有办法获得 Material MainTexture 名称?
- google-apps-script - 谷歌应用脚本读取和匹配不同工作表中的单元格值
- reactjs - reactjs登录成功后如何打开主页?