在重启过程中用shell脚本去启动docker容器并执行某一操作时,可能会出现如题所示错误,原因是后台linux执行的时候没有终端设备,TTY一词源于Teletypes,或teletypewriters。其实出现该错误和我们的一个习惯有关,一般来说我们启动容器后要与容器进行交互操作,这是,就要加上"-it"这个参数,而在重启过重中或定时任务中,如果让脚本在后台运行,就没有可交互的终端,这就会引发如题所示错误,解决办法就是去掉
“-it”这个参数。
vim jumpserver_sql_backup.sh
#!/bin/bash
source /etc/profile
docker exec -u root jms_all /bin/bash -c "mysqldump jumpserver > /opt/jumpserver/data/sql_bak/jumpserver_$(date "+%F_%H-%M-%S").sql"
本文讲述了如何在不依赖交互式终端的情况下,通过shell脚本重启docker容器并执行mysqldump操作,避免因缺少TTY引发的错误。重点在于理解背景和提供去掉-it参数的解决方案。
1万+

被折叠的 条评论
为什么被折叠?



