docker心得

1、运行nginx要特殊

docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker 容器pid挂了,那么docker容器便会直接退出。

nginx -g 'daemon off;'

 

2、修改nginx.conf权限要特殊

echo "$(sed 's/192.168.1.1/192.168.1.254/g' /etc/resolv.conf)" > /etc/resolv.conf 即可

最好方案:先挂载nginx.conf的配置内容到临时文件,如conf.temp,然后,cp conf.temp nginx.conf。  这样就可以随意改nginx.conf 了。

 

3、sed使用变量要用双引号,不可单引号

sed命令使用双引号的情况下,可以使用$var(变量)直接引用:
echo | sed "s/^/$RANDOM.rmvb_/g"
13562.rmvb_

 

4、linux 中${ }截取变量字符串

从右边第几个字符开始,及字符的个数。代码如下:echo ${var:0-7:3}
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123

5、./ 和 sh 的使用区别

使用“./”执行脚本,对应的xxx.sh脚本必须要有执行权限;

使用“sh” 执行脚本,对应的xxx.sh没有执行权限,亦可执行;

当脚本开头使用#!设置使用的shell类型时,使用“./”执行脚本时,则使用“#!”标志的shell执行脚本;若无使用“#!”标记,则使用系统设置的默认shell执行脚本;

 

6、使用crond、crontab 实现定时任务

Dockerfile:

RUN yum install crontabs -y

CMD ["/usr/sbin/crond","-n"]

或者直接容器内:

yum install crontabs -y

/usr/sbin/crond -i 

 

cron在3个地方查找配置文件:

1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。
2、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。
cat /etc/crontab结果如下

这里写图片描述

3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

查看cron运行日志:
  看 /var/log/cron.log这个文件就可以,可以用tail -f /var/log/cron.log观察

 

创建cron脚本
第一步:写cron脚本文件,命名为crontest.cron。
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt  表示,每隔15分钟,执行打印一次命令 
第二步:添加定时任务。执行命令 “crontab crontest.cron”。搞定 
第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本
注意:这操作是直接替换该用户下的crontab,而不是新增

也可以crontab -uroot -e编辑定时执行写好脚本,例如crontab -uroot -e进入编辑页面如下,/root/updatecode.sh为脚本所在位置
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值