某视频点播客户每日有一到两部不同码率的影片需要做预加载(所谓预加载,就是提前把需要缓存的内容推送到CDN节点上,这样,网民在请求内容时,节点不会再去源站抓取新内容,降低源站负载)。本来,每天的预加载都是通过计划任务crontab来进行的,只需要提前把新内容的url添加到指定的文本中,计划任务会在每天00:00的时候自动进行预加载动作,2小时候验证是否成功就可以。
昨晚的事情有点多,值班运维忘记提前部署预加载,随后我进行验证的时候发现未进行预加载动作,所以更改了原定的计划任务进行补救。
原定的计划任务:
0 0 * * * cd /preload/xxx && nohup sh preload4.sh ip.list & >/dev/null 2>&1
默认会在00:00点准时做预加载
脚本名称preload4.sh
预加载文件: xxx.txt
预加载设备:ip.list
客户定期会有预加载功能
每次只需要登陆设备 更换xxx.txt 即可
补救动作,更改原计划的任务时间,并把新内容url添加进xxx.txt即可:
crontab -e
30 5 * * * cd /preload/xxx && nohup sh preload4.sh ip.list & >/dev/null 2>&1
计划任务于05:30进行预加载动作
计划任务cron(用户级)
作用: 计划任务主要是做一些周期性的任务
[root@rayno ~]# crontab -e //创建计划任务
* * * * * /bin/ls
[root@rayno ~]# crontab -l //查看计划任务
* * * * * /bin/ls
[root@rayno ~]# ls /var/spool/cron/
root
[root@rayno ~]# cat /var/spool/cron/root
* * * * * /bin/ls
[root@rayno ~]# tail /var/log/cron //查看日志
作业语法格式:
00 02 * * * ls //每天2:00整
00 02 1 * * ls //每月1号2:00整
00 02 14 2 * ls //每年2月14号2:00整
00 02 * * 7 ls //每周日2:00整
00 02 14 2 7 ls //每年2月14号2:00整 或者 每周日2:00整,这两个时间都执行
00 02 * * * ls //每天2:00整
* 02 * * * ls //每天2:00中的每一分钟
* * * * * ls //每分钟执行ls
* * 14 2 * ls //2月14号的每分钟
*/5 * * * * ls //每隔5分钟
00 02 1,5,8 * * ls //每月1,5,8号的2:00整
00 02 1-8 * * ls //每月1到8号的2:00整