bash - crontab 无法在容器环境中直接执行脚本
问题描述
我向您展示了以下困境,我手动执行了我的脚本并且效果很好,例如,请参见下一行:
docker exec -ti backup_subversion sh -c "/tmp/my_script.sh"
但是当我试图安排这个过程时,这一行就被跳过了。
- 我试图只执行一个触摸命令,它也被忽略了。
- 我试图以root身份执行,同样的问题。
- 我试图在另一个 docker 环境中执行:同样的问题。
我的操作系统是 Centos 7。
在此脚本中,例如将崩溃的错误部分:
#!/bin/bash
# Create a container.
docker run -d --name=backup_subversion \
-v /subversion/dump:/var/dump \
--net my_network my_server.domaine.com/subversion/billy:1.9
# I copy a script.
docker cp tools_subversion_dump.sh backup_subversion:/tmp
# This line is ignore since crontab exec.
docker exec -ti backup_subversion sh -c "/tmp/tools_subversion_dump.sh"
提前感谢您的回答,因为这对我来说是个谜。
解决方案
这可能是因为您使用了-it
仅适用于交互式外壳的选项,而不是像问题中引用的脚本中使用的那样的伪外壳
推荐阅读
- rust - Rust 中的结构成员双重可变借用
- r - 1 var 相对于其他变量的 R 表平均值
- python - 使用 Pandas 读取数据并跳过元数据
- python - 我无法导入 ucf 101 数据集 (torchvision),“列表索引超出范围”错误
- android - 我的应用程序崩溃并一直出现此错误 java.lang.NullPointerException: Can't pass null for argument 'pathString' in child(), can't visit next page
- python - 成功下载后无法在 python shell 中使用 pyperclip 模块
- sql - 无法通过 Access 中的 SQL 查询更新表
- powershell - 从 CSV 文件中添加对带有子文件夹的文件的 NTFS 访问权限
- amazon-ec2 - 如何从腻子连接Redshift?
- sas - SAS中按比例分组的子集数据