宿主机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命令无效的解决办法了,如有问题可与博主一起交流讨论!