宿主机crontab中添加docker exec命令无效的解决办法

背景:

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

根源:

脚本中存在如下命令在计划任务中执行无效:

docker exec -it mysql mysqldump --add-drop-table --force -uroot -p123456 test > /data/backup/mysql_from_test/data/test.sql

解决办法:

原因是exec 后面加了 -it 参数就开启了一个终端,计划任务是无法进入任何终端的,需要将命令行中的 -it参数去掉,同时建议二进制命令写成全路径形式,修改为如下:

/usr/bin/docker exec mysql /usr/bin/mysqldump --add-drop-table --force -uroot -p123456 test > /data/backup/mysql_from_test/data/test.sql

好了,这就是宿主机crontab中添加docker exec命令无效的解决办法了,如有问题可与博主一起交流讨论!