如果您对在bash文件中运行docker命令并使用crontab运行感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于在bash文件中运行docker命令并使用crontab运
如果您对在bash文件中运行docker命令并使用crontab运行感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于在bash文件中运行docker命令并使用crontab运行的详细内容,我们还将为您解答bash docker的相关问题,并且为您提供关于bash – Shell脚本没有通过crontab运行,但手动运行正常、bash – 在Mac上运行Docker,构建工作,运行错误:: / bin / sh:1:[:missing]、CentOS Linux使用crontab运行定时任务详解、CentOS和Linux使用crontab运行定时任务的有价值信息。
本文目录一览:- 在bash文件中运行docker命令并使用crontab运行(bash docker)
- bash – Shell脚本没有通过crontab运行,但手动运行正常
- bash – 在Mac上运行Docker,构建工作,运行错误:: / bin / sh:1:[:missing]
- CentOS Linux使用crontab运行定时任务详解
- CentOS和Linux使用crontab运行定时任务
在bash文件中运行docker命令并使用crontab运行(bash docker)
#!/bin/bashdocker exec -ti erpnext sh -c "cd /home/frappe/frappe-bench/ &&/usr/local/bin/bench backup"echo ''Hello, world.'' >foo.txt
上面的代码是我的bash文件。这里有两个命令
- 创建txt文件
- 执行Docker容器
如果我运行此命令
cd /home/arifur/workspace_python/erpdatabasebackup && bash backup_database.sh
在终端然后它正在工作
但是当我在crontab中运行时
* * * * * cd /home/arifur/workspace_python/erpdatabasebackup && bash backup_database.sh
那么只有txt文件创建有效,而docker容器无效。
答案1
小编典典-ti
使用伪tty并以交互方式运行的请求,但是cron不会附加到任何TTY。尝试删除-ti
在
docker exec erpnext sh -c "cd /home/frappe/frappe-bench/ && /usr/local/bin/bench backup"
bash – Shell脚本没有通过crontab运行,但手动运行正常
* * * * * /bin/bash /var/scripts/vpn-check.sh
脚本来了:
#!/bin/sh /bin/ping -c3 192.168.17.27 > /tmp/pingreport result=`grep "0 received" /tmp/pingreport` truncresult="`echo "$result" | sed 's/^\(.................................\).*$$'`" if [[ $truncresult == "3 packets transmitted,0 received" ]]; then /usr/sbin/pppd call home fi
crontab -e
它需要运行
nano /etc/crontab
有类似的东西
*/5 * * * * root /bin/bash /var/scripts/vpn-check.sh
现在很好!
谢谢大家的帮助……希望我的解决方案也能帮助其他人.
bash – 在Mac上运行Docker,构建工作,运行错误:: / bin / sh:1:[:missing]
/bin/sh: 1: [: missing ]
我在本地目录中创建图像
dockerfile,requirements.txt和python脚本文件. – 3档 –
使用docker build
Dockerfile:
FROM python copY "requirements.txt" RUN pip install -r requirements.txt copY "quandlData.py" CMD [ "python","./quandlData.py"
– 简单的脚本,从quandl API获取一些数据,并从正在运行的redis服务器获取写入.要运行,我只使用docker run image_name
解决方法
CMD [ "python","./quandlData.py"
被解析为shell命令,而不是数组 – 而[命令(当以这种方式调用时,而不是通过其备用名称测试)要求其最后一个参数为].
但是,在这种情况下,添加一个尾随]会导致你的CMD解析为一个数组,描述传递给python的参数,而不是一个[命令 – 应该是什么.
因此,您可以执行以下两项操作之一:
# BETTER: Fix your JSON array CMD [ "python","./quandlData.py" ]
…要么…
# WORSE: Pass a valid shell command CMD python ./quandlData.py
CentOS Linux使用crontab运行定时任务详解
安装crontab:
yum install crontabs
说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig crond on
1,crontab命令
功能说明:设置计时器。
语 法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
2,crontab 格式
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
# Use the hash sign to prefix a comment
# +―――――- minute (0 �C 59)
# | +――――- hour (0 �C 23)
# | | +―――- day of month (1 �C 31)
# | | | +――- month (1 �C 12)
# | | | | +―- day of week (0 �C 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
crontab文件的一些例子:
30 21 * * * /etc/init.d/Nginx restart
每晚的21:30重启 Nginx。
45 4 1,10,22 * * /etc/init.d/Nginx restart
每月1、 10、22日的4 : 45重启Nginx。
10 1 * * 6,0 /etc/init.d/Nginx restart
每周六、周日的1 : 10重启Nginx。
0,30 18-23 * * * /etc/init.d/Nginx restart
每天18 : 00至23 : 00之间每隔30分钟重启Nginx。
0 23 * * 6 /etc/init.d/Nginx restart
每星期六的11 : 00 pm重启Nginx。
* */1 * * * /etc/init.d/Nginx restart
每一小时重启Nginx
* 23-7/1 * * * /etc/init.d/Nginx restart
晚上11点到早上7点之间,每 隔一小时重启Nginx
0 11 4 * mon-wed /etc/init.d/Nginx restart
每月的4号与每周一到周三 的11点重启Nginx
0 4 1 jan * /etc/init.d/Nginx restart
一月一号的4点重启Nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20
每半小时同步一下时间
CentOS和Linux使用crontab运行定时任务
CentOS和Linux使用crontab运行定时任务
更多:http://www.gongfuxiang.com/post/1d0500b2_656ff75安装crontab:
yum install crontabs
说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig –level 35 crond on
1,crontab命令
功能说明:设置计时器。
语 法:crontab [-u ][配置文件] 或crontab [-u ][-elr]
补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u 指定要设定计时器的用户名称。
2,crontab 格式
基本格式:
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者*/1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
# Use the hash sign to prefix a comment
# +—————- minute (0 – 59)
# | +————- hour (0 – 23)
# | | +———- day of month (1 – 31)
# | | | +——- month (1 – 12)
# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
crontab文件的一些例子:
30 21 * * * /etc/init.d/nginx restart
每晚的21:30重启nginx。
45 4 1,10,22 * * /etc/init.d/nginx restart
每月1、10、22日的4 : 45重启nginx。
10 1 * * 6,0 /etc/init.d/nginx restart
每周六、周日的1 : 10重启nginx。
0,30 18-23 * * * /etc/init.d/nginx restart
每天18 : 00至23 : 00之间每隔30分钟重启nginx。
0 23 * * 6 /etc/init.d/nginx restart
每星期六的11 : 00 pm重启nginx。
* */1 * * * /etc/init.d/nginx restart
每一小时重启nginx
* 23-7/1 * * * /etc/init.d/nginx restart
晚上11点到早上7点之间,每 隔一小时重启nginx
0 11 4 * mon-wed /etc/init.d/nginx restart
每月的4号与每周一到周三 的11点重启nginx
0 4 1 jan * /etc/init.d/nginx restart
一月一号的4点重启nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20
每半小时同步一下时间
AD:真正免费,域名+虚机+企业邮箱=0元
今天关于在bash文件中运行docker命令并使用crontab运行和bash docker的讲解已经结束,谢谢您的阅读,如果想了解更多关于bash – Shell脚本没有通过crontab运行,但手动运行正常、bash – 在Mac上运行Docker,构建工作,运行错误:: / bin / sh:1:[:missing]、CentOS Linux使用crontab运行定时任务详解、CentOS和Linux使用crontab运行定时任务的相关知识,请在本站搜索。
本文标签: