GVKun编程网logo

在bash文件中运行docker命令并使用crontab运行(bash docker)

18

如果您对在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文件中运行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文件。这里有两个命令

  1. 创建txt文件
  2. 执行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运行,但手动运行正常

bash – Shell脚本没有通过crontab运行,但手动运行正常

我有一个脚本检查pptp vpn是否正在运行,如果不是,它重新连接pptp vpn,当我手动运行脚本时它执行正常,当我设置一个cron作业时,没有运行
* * * * * /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
最后我找到了一个解决方案…我需要运行cron而不是
crontab -e

它需要运行

nano /etc/crontab

有类似的东西

*/5 *     * * *   root  /bin/bash /var/scripts/vpn-check.sh

现在很好!

谢谢大家的帮助……希望我的解决方案也能帮助其他人.

bash – 在Mac上运行Docker,构建工作,运行错误:: / bin / sh:1:[:missing]

bash – 在Mac上运行Docker,构建工作,运行错误:: / bin / sh:1:[:missing]

在Mac上运行Docker,我可以构建我的图像,但在运行时,我收到以下错误:

/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运行定时任务详解

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运行定时任务

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运行定时任务的相关知识,请在本站搜索。

本文标签: