crontab mysql命令_crontab 添加计划任务执行docker exec命令

同事写了个备份mysql容器的脚本,手动执行没问题,放到计划任务就备份文件大小为0.怎么都不行。

CentOS6.x 64位系统。

1.脚本如下cat sqlbak.sh

#!/bin/bash

source /etc/profile

/usr/bin/docker exec -it windranger_some_mysql_1 mysqldump -h '127.0.0.1' -uroot -p'root' windranger > /root/mysqlbak/`date "+%Y-%m-%d~%H-%M-%S"`.sql

2.计划任务如下crontab -l

* * * * * /bin/bash/ root/sqlbak.sh

解决方法:

谷歌搜索结果(百度搜了许久,没个靠谱的答案):

Your docker exec command says it needs "pseudo terminal and runs in interactive mode" (-it flags) while cron doesn't attach to any TTYs.

大致意思 exec 加了 -it 参数就开启了一个终端,计划任务是无法进入任何终端的。

修改后的正确脚本如下:#!/bin/bash

source /etc/profile

/usr/bin/docker exec windranger_some_mysql_1 /usr/bin/mysqldump -h '127.0.0.1' -uroot -p'root' windranger > /root/mysqlbak/`date "+%Y-%m-%d~%H-%M-%S"`.sql

查看备份目录:ls /root/mysqlbak

total 3116

-rw-r--r--. 1 root root 166329 Jul 6 11:50 2018-07-06~11-50-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:51 2018-07-06~11-51-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:52 2018-07-06~11-52-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:53 2018-07-06~11-53-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:54 2018-07-06~11-54-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:55 2018-07-06~11-55-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:56 2018-07-06~11-56-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:57 2018-07-06~11-57-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:58 2018-07-06~11-58-01.sql

-rw-r--r--. 1 root root 166329 Jul 6 11:59 2018-07-06~11-59-01.sql

本文由 gjc159357 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: Jul 6, 2018 at 04:08 am

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值