场景:服务器tomcat的日志很长 需要切割 并每日上传
步骤
使用logrotate切割日志——>使用ossutil上传到oss——>创建上传脚本放进定时任务
1.使用logrotate切割日志
配置文件 /etc/logrotate.conf
配置目录 /etc/logrotate.d/
1.添加tomcat文件和logcut目录
cd /usr/dev
mkdir logcut
logrotate是系统内置的 不需要额外安装
直接进入配置目录 编辑配置文件
cd /etc/logrotate.d/
vim tomcat
这里可以直接百度搜索logrotate语法,以下是我用的参考,实现每天切割:
/usr/dev/tomcat/logs/catalina.out
{
copytruncate
daily
rotate 7
compress
nodelaycompress
missingok
olddir /usr/dev/logcut
dateext
dateformat -%Y%m%d.%s
size 10k
}
/usr/dev/tomcat/logs/catalina.out #服务器中catalina.out存放地址
{
copytruncate #拷贝原日志文件,并将其大小变为0
daily #每天切割
rotate 7 #保留最多7个文件
compress #压缩分割后的文件
missingok #文件丢失了,继续切割而不报错
olddir /usr/dev/logcut
dateext
dateformat -%Y%m%d.%s 生成的文件名,这里看自己定义
size 10k #当catalina.out文件大于10k时,就切割
}
这里刚写完,手动试一下,有两种测试命令:
测试1:
logrotate /etc/logrotate.conf
测试2:(只轮转刚刚的tomcat配置文件)
logrotate --force /etc/logrotate.d/tomcat
测完查看文件并展示内存
[root@localhost logcut]# sudo du -sh * #
127M catalina.out-20220212.1710357541.gz
131M catalina.out-20220213.1710444841.gz
138M catalina.out-20220214.1710532021.gz
2.配置ossutil
查看linux系统位数 getconf LONG_BIT
返回64
oss说明文档地址https://help.aliyun.com/document_detail/120075.html
进想安装ossutil的文件夹中 运行命令 给工具设置权限
cd /usr/dev
wget https://gosspublic.alicdn.com/ossutil/1.7.10/ossutil64
chmod 755 ossutil64
3. 在ossutil64下载地址文件路径下创建脚本
修改配置 按提示输入阿里云的key等配置
./ossutil64 config
完了开始写脚本
vim dailylog.sh
创建名为dailylog.sh的脚本文件
#!/bin/sh
cd /usr/dev
./ossutil64 cp -r /usr/dev/logcut/ oss://openbox-具体名字/对应存放日志的os文件夹名字/ -u
最后使用crontab -e
编辑定时器让这个脚本每天运行
crontab -e
分 时 日 月 星期
0 6 * * * bash /usr/dev/dailylog.sh
OK.
crontab -e
编辑定时器列表
crontab -l
查看定时器列表