手动可以执行脚本,但是crontab定时任务执行有生成文件但是没数据

手动可以执行脚本,但是crontab定时任务执行有生成文件但是没数据

原因:
1.mysqldump脚本所在的位置要写全路径,因为手动执行的时候是在bin目录下执行的所以没问题。但是定时任务执行的时候因为没有他默认是找crontab所在的目录去执行脚本。但是mysqldump不在这个里面所以会执行不成功。

改成这样就可以了

# 备份数据库
for DB_NAME in "${DB_NAMES[@]}"; do
    /home/mysql/mysql/bin/mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > "$BACKUP_DIR/$DATE_DIR/backup_$DB_NAME.sql"
done

2.Linux时区或者时间和现实时间不一致
当我解决完第一个问题之后,我把定时任务改成了两分钟后执行,想要验证下有没有问题。结果发现到了时间之后还是没有按照我的预期生成对应的文件。
这个时候,我的第一步排查是脚本有问题,但是手动执行之后没问题,然后就怀疑cron表达式写错了仔细检查后没问题。
 
当我猛查资料的时候,发现脚本自己执行了。后面检查发现我的Linux时间,比我实际时间慢10分钟。所以才出现,我以为时间到了,其实并没有到时间,所以他执行不成功。

date 查看Linux当前时间

tail /var/log/cron  查看cron日志;

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值