登录
注册
写文章
发现
工具
linux定时切割备份文件内容,解决单文件过大问题
_3t3lfz KEKfID
编辑文章
linux定时切割备份文件内容,解决单文件过大问题
asfx站长
2021.03.08 16:53:52
阅读
1126
### 切割文件脚本split_file_xxx.sh: 例如需要切割的源文件所在路径为:/opt/test/catalina.out ``` # 脚本:自定义切割文件内容 #!/bin/bash # 获取上一天年月日,例如20210308 current_date=`date -d "-1 day" "+%Y%m%d"` # 对原日志文件/opt/test/catalina.out按照指定大小切分,例如每个文件为20971520字节(20MB)大小,(-d -a 4 以4位数字形式为后缀以从0000开始,例如输出格式为log_20210308_0001) split -b 20971520 -d -a 4 /opt/test/catalina.out /opt/test/catalina_out_bak/catalina_out_${current_date}_ # 切割文件内容需要时间,可以考虑sleep一会,单位:秒 sleep 0.5 # 瞬间清空原日志内容,后续会继续写该文件 cat /dev/null > /opt/test/catalina.out # echo "Done!" ``` 给脚本赋予执行权限: ``` chmod 777 split_file.sh ``` 测试:手动执行脚本命令: ``` ./split_file.sh ``` ### 将脚本加入linux定时任务自动执行: ``` # 编辑linux定时任务 crontab -e # 按i开始编辑 i # 例如每分钟执行一次脚本split_file_xxx.sh,输入以下内容 */1 * * * * /opt/test/script/split_file_xxx.sh # 保存并退出,按esc,再按wq! # 查看当前用户的定时任务列表 crontab -l # 删除当前用户的定时任务 crontab -r # 查看定时任务执行情况 tail -f /var/log/cron # 查看定时任务执行状态 /sbin/service crond status # 定时任务重启 /sbin/service crond restart # 定时任务启动 /sbin/service crond start # 定时任务关闭 /sbin/service crond stop ``` PS:[定时任务cron表达式参照>>](http://asfx.xyz/tool/cron "定时任务cron表达式参照>>") ##### 设置crond开机自动启动 ``` # 查看crond是否开机自动启动,若为开机自动启动:2,3,4,5都应该为启动“on” chkconfig --list crond crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 # 若不是,设置开机自动启动 chkconfig --level 35 crond on # 再次查看crond是否开机自动启动 chkconfig --list crond ```
我的主页
退出