本文共 1299 字,大约阅读时间需要 4 分钟。
前些天领导找我说系统里没有对日志进行自动定期压缩转存清理工具,现在只能手动进行处理。然后这个任务分配给我了。压缩指打tar包,转存换一个目录备份,清楚是删除。只能写shell脚本加crontab命令(用于设置周期性被执行的指令)。
创建一个名为backup.sh的文件夹,上代码:
#!/bin/bash#author:bs#data:20190309#description: 日志定期压缩转存、清理#version:v0.1#创建转存日志目录mkdir -p /backup/backup_log#压缩和转存日志,转存路径上方以创建好,压缩日志名称是buckup_log_加系统当前时间年月日.tar.gzcd /translog/tar zcvf /backup/backup_log/buckup_log_`date +%Y%m%d%H`.tar.gz source/#清理日志cd source/rm -rf *#增加压缩日志的读和执行权限cd /backup/backup_log/chmod u=rx buckup_log_`date +%Y%m%d%H`.tar.gz
其他系统的日志也存放在此目录,如果日志全部删除,其他系统出现问题没有日志可查看。并且自己系统日志也无法查看,所以要保留系统前7天的日志和其他系统的日志。所以我对shell脚本进行修改。需要查看请自行。
设置执行周期 crontab
直接用crontab命令编辑,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容 crontab -r //删除某个用户的cron服务 crontab -e //编辑某个用户的cron服务基本格式 :
* * * * * command 分 时 日 月 周 命令第1列表示分钟0~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
设置每月1号凌晨零点开始执行
0 0 1 * * /脚本的存放路径/脚本名称.sh
转载地址:http://nweof.baihongyu.com/