Docker下Ubuntu的定时任务
前面一篇文章中,我们己经在Docker中的Ubuntu中建立好了各种任务,比如nginx
, sslh
, ssh
等等,域名什么的也配置好了。但是因为没有固定的IP地址,我们还是需要实现一个动态DDNS的功能,这个我们也通过脚本实现了,但是这个脚本需要定时运行,之前常用的方式是通过crontab
建立一个周期性的任务,但是Docker
中似乎没有这个,网上转了一圈发现可以通过如下的方式安装cron
.
sudo apt install cron
熟练的加上一条任务:
*/10 * * * * /home/major/work/apps/ali_ddns.sh>/home/major/cron.log
加了之后,睡了一觉,NAS访问不了了,看了一圈,发现是DNS解析有问题,也就是相应的DNS记录并没有更新,这个cron也是完全没有Log,这个可咋整?网上又转悠了好久,发现如下的解决方法和/etc/pam.d/cron
这个文件有关系,解决方法是把其中的一行进行注释就可以了:
# session required pam_loginuid.so
这样就可以正常的使用cron
了,以后有需要就可以直接放到这里面就可以了。
需要说明的是Docker
中,后面安装的一些服务,比如nginx
, sslh
, ssh
, cron
等都不会自动启动,没错cron
也在里面,所以想通过@startup
方式启动服务也是不可行的,因为我在Docker启动的时候默认是运行bash
的,所以这些任务都不能自动启动,这个问题直到现在都还没有解决,一个可行的方法是通过自定义Docker镜像的方式,但是稍微有点麻烦,现在也没搞,后面再说吧,今天就先酱。
最后更新于 2019-07-20 12:00:19 并被添加「」标签,已有 2369 位童鞋阅读过。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。