crontab之坑爹的环境变量
发布时间:2020-12-15 16:38:59 所属栏目:安全 来源:网络整理
导读:如前文所述,最近在做mysql的备份mysqldump之跳过指定表 问题描述 在使用crontab的时候再次碰到了错过很多次的神坑。特此记录一下 手动执行脚本没有问题,crontab执行无结果 手动执行脚本无异常,crontab执行结果异常(不一致) 脚本如下 #!/bin/bash/usr/lo
如前文所述,最近在做mysql的备份mysqldump之跳过指定表 问题描述在使用crontab的时候再次碰到了错过很多次的神坑。特此记录一下
脚本如下 #!/bin/bash /usr/local/mysql/bin/mysqldump -uroot -pXXX --skip-lock-tables --databases f6dms_trial $(mysql -uroot -pXXX -Df6dms_trial -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_trial."$1}'|xargs)| gzip > /data/backup/f6dms-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz; /usr/local/mysql/bin/mysqldump -uroot -pXXX --skip-lock-tables --databases f6db_trial f6report_new_trial | gzip > /data/backup/f6db-trial_`date '+%Y-%m-%d-%H:%M:%S'`.sql.gz; 30 1 * * * /data/shell/backupdb.sh; 注意到写到mysqldump是用了绝对路径
默认情况下直接手动执行没有问题(读取到了当前环境变量) 当使用crontab时,并不会默认读取当前环境变量,导致备份数据库依然全备份 (mysql指令不能识别导致无法拼接出 --ignore-table) 解决方案
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |