是的,你没有看错,帅帅最近就遇到了这样一个奇怪需求:
线上网站,需要在每天晚上的10点关闭(不能访问),然后在每天早上的8点开启(继续能访问)。
想了下,直接每天10点关闭nginx服务,第二天早上再开启nginx服务不就行了?
说干就干,接下来,crontab上场:
一、制作sh命令文件
咱们先做俩sh命令文件,直接手动执行这两个sh命令文件,即可实现相应的效果:
①开启nginx服务:
/opt/softs/nginx/sbin/nginx
②关闭nginx服务:
/opt/softs/nginx/sbin/nginx -s stop
注:/opt/softs/nginx 为nginx安装路径
然后保存为俩sh文件:
将这俩sh文件,拷贝到服务器上存放起来:
命令进入/opt/softs/bat文件夹,给这俩sh文件赋予可执行权限:
chmod +x <filename>
如图:
二、制作crontab命令
打开crontab编辑:
crontab -e
编辑&填写命令(先输入一下“i”,即可进行编辑):
0 22 * * * sh /opt/softs/bat/nginx_stop.sh 0 8 * * * sh /opt/softs/bat/nginx_start.sh
第一行表示:每天22点,执行一下路径为 /opt/softs/bat/nginx_stop.sh 的sh文件;
第二行表示:每天8点,执行一下路径为 /opt/softs/bat/nginx_start.sh 的sh文件。
由于我们在制作sh文件的时候,就把nginx的开启、关闭命令写进去了,所以当每次执行sh文件的时候,就会相应地对nginx进行开启、关闭操作。
编辑完成后,按一下“esc”退出编辑,再输入“:wq”进行保存。
最后,别忘了重启一下crontab,使配置生效:
/bin/systemctl restart crond.service
另外,输入以下命令,可查看所有运行的任务:
crontab -l
搞定,拿碗打饭!!
如果文章对您有帮助,可以的话请帮我点个赞吧,谢谢~