利用crontab定时重启centos
起因
前一段买了aliyun的ecs的最低配版,大概配置是centos 7,512内存,20G空间。
部署了几个站点,虽然网站已经做了一定的静态化,但还是会出现内存不够用的情况,这个时候,系统会停掉一些进程,如杀掉了mysql,导致部分站点功能运行不起来。我想解决方法有这几个:
- 买高配置的服务器
- 优化代码程序
- 优化部署
- 定时重启服务器,释放内存资源
考虑了一下,最后选择了最简便的方法,定时重启服务器,释放内存资源
Crontab
Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 service crond start启动它。
在终端输入,man 5 crontab
查看 crontab 说明,或者直接编辑crontab文件,vi /etc/crontab
,会看到一个crontab的例子:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
不指定具体的时间用*
号替代,用空格区分时间参数,最后是到时要执行的操作。
如:在 12 月内, 每天的早上 6执行一次/usr/bin/backup
:
0 6 * 12 * /usr/bin/backup
完成
在/etc/crontab文件中添加代码,或者crontab -e
创建或编辑cron服务:
# 每天零时零点重启系统
0 0 * * * /sbin/shutdown -r now
/sbin/shutdown -r now
是立即重启的命令。
重启crond服务完成。