00.05.Linux系统自动清理缓存脚本及定时任务配置
问题描述
在系统中,随着内存的持续使用,可能会造成内存压力。为了优化内存使用,可以编写脚本定期清理缓存。以下是自动清理缓存脚本的编写及定时任务设置过程。
解决方法
步骤 1:编写自动清理缓存脚本
- 使用
vim
编辑器编写freemem.sh
脚本:#! /bin/sh # 当前已使用内存大小 used=`free -m | awk 'NR==2' | awk '{print \$3}'` # 当前剩余的内存大小 free=`free -m | awk 'NR==2' | awk '{print \$4}'` echo "===========================" >> /var/log/mem.log date >> /var/log/mem.log echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log # 判断剩余内存是否小于或等于2048MB if [ $free -le 2048 ] ; then sync && echo 1 > /proc/sys/vm/drop_caches sync && echo 2 > /proc/sys/vm/drop_caches sync && echo 3 > /proc/sys/vm/drop_caches used_ok=`free -m | awk 'NR==2' | awk '{print \$3}'` free_ok=`free -m | awk 'NR==2' | awk '{print \$4}'` echo "Memory usage after | [Use:${used_ok}MB][Free:${free_ok}MB]" >> /var/log/mem.log # 返回操作信息 echo "OK" >> /var/log/mem.log else echo "Not required" >> /var/log/mem.log fi exit 1
###### 步骤 2:授予脚本执行权限
2. 授予脚本执行权限,确保脚本可以运行:
`chmod 755 freemem.sh`
3. 确保权限已设置成功:
`ls -l freemem.sh # 输出类似: -rwxr-xr-x 1 root root 874 Dec 3 11:41 freemem.sh`
###### 步骤 3:设置定时任务
4. 使用`crontab`编辑定时任务,确保每天晚上23:00执行清理脚本:
`crontab -e`
然后在定时任务配置中添加如下行:
`0 23 * * * root /home/user/freemem.sh 65 >> /home/user/freemem_log.txt`
5. 保存并退出编辑器。
###### 步骤 4:查询已设置的定时任务
6. 使用以下命令查看当前用户的定时任务:
`crontab -l`
###### 步骤 5:常用命令管理`crond`服务
7. 以下是常用的`crond`服务命令:
- 启动`crond`服务:
`systemctl status crond.service`
- 停止`crond`服务:
`systemctl stop crond.service`
- 重启`crond`服务:
`systemctl restart crond.service`
- 重新载入`crond`配置:
`systemctl reload crond.service`
- 设置`crond`服务开机自启动:
`systemctl enable crond.service`
- 查看`crond`是否设置为自启动:
`systemctl list-unit-files | grep crond`
##### 注意事项
通过以上步骤,可以实现自动清理内存缓存的脚本,并通过`cron`设置定时任务来自动执行。此外,了解`crond`服务的基本管理命令,有助于在系统中管理定时任务。
本文来自博客园,作者:{雾里看浮光(南知意)},转载请注明原文链接:{https://www.cnblogs.com/JaseLee}