起因
前一段買了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服務完成。