1、前言
最近线上有个场景,需要清理线上日志。清理的原因是一个程序产生了大量的无用中间文件。
为了清理磁盘空间,直接删除即可。
2、定位磁盘
(1) 首先登录服务器
确认磁盘已满的问题:
df -lh 查看 磁盘的使用情况,这里可能存在多个挂载。根据需要清理磁盘即可,如图:
此处我找了一个服务器查看,并不是已满的服务器。
Filesystem 就是文件系统名称
Size 就是使用总挂载磁盘空间大小
Used 就是使用磁盘空间大小
Avail 为剩余磁盘空间大小
Use% 为使用百分比大小,当看到100%的时候就需要清理磁盘了
Mounted on 为挂载具体地址
(2) 定位日志
假如存在 挂载在/usr 下磁盘已满
find /usr -size +100M # 为查询 /usr 下大于100m的所有文件
(3) 删除文件
rm -rf xxxx 慎重使用
为了防止误操作,可以跳转到具体文件目录下,直接文件全名删除。
如果存在多个文件需要删除,例如带有时间,带有log,就可以直接
rm -rf *log*
删除,但是执行的时候一定要慎重,再次声明。
3、定时清理
- 查看crontab 启动
此处使用linux crontab 执行,首先查看crontab 是否启动,
cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload
以上1-4行分别为启动、停止、重启服务和重新加载配置。
要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可
查看当前用户的crontab,输入 crontab -l;
编辑crontab,输入 crontab -e;
删除crontab,输入 crontab -r
查看crontab运行状态
service crond status
crontab 启动状态来自网站
- 脚本编写
(1)在当前文件夹下,例如 /root, 编写shell 删除脚本 a.sh, 例如 写入 rm -rf Log,可以在正式之前先进行测试,
例如输入数据到1.txt, echo “hello world” >> 1.txt
(2)创建cron 定时任务,这里可以查看cron 表达式的写法,简单的话 就是
例如 0 1 * * * 代表 每天1点,* 代表任意,五位分别为: 分钟/小时/日期/月份/年份
假如 每2分钟执行一次, */2 * * * *
我这里就是每天1点清理
创建 a.cron 文件,写入内容
0 1 * * * /root/a.sh
这里式为了定时执行shell 脚本
(3)文件授权
这里是给a.cron 和 a.sh 赋予单独的读写权限。
chmod 755 a.*
(4)加入定时任务
crontab a.cron
(5) 查看 定时任务
crontab -l
(6)移除定时任务
contab -r 是移除所有任务,慎重使用,一下子所有任务都没了
contab -e 是vi对定时任务编辑,直接dd 就可以删除光标当前行任务,然后 esc切换命令,:wq 保存即可。
再次查看就没有这个定时任务了。
这里的操作还是比较简单的,这里是做一个记录。谢谢观看。