自动清理日志在GBase8a 运营维护过程中经常会需要定期清理系统日志。可以参考在crontab中按照以下方式配置脚本来实现。crontab配置可以参考设置每月1日执行脚本脚本赋予gbase用户可执行权限chmod x /opt/gbasetolls/cleanlogs.sh编辑gbase用户的crontabcrontab -ecrontab配置样例0 0 1 * * sh /opt/gbasetolls/cleanlogs.sh检查crontab配置crontab -l脚本说明参数ceiling为日志大小可根据实际需要进行指定脚本运行时应确保gbase用户执行脚本清理内容为集群层express日志节点层expres 日志集群层system日志 节点层system日志gcware日志和 loader日志loader log的清理规则是 清理脚本运行当天之前的的日志目录及其内部文件如需变更可修改 -mtime N 中的N参数脚本内容######################################################################################## # script name : cleanlogs.sh # author: zhaoqinggang # create time: 2024-09-25 # specification: 清理集群日志脚本 # precondition每个节点都部署在gbase用户的crontab # run user: gbase ######################################################################################## ceiling10000000000 #10GB gc_log_home$GCLUSTER_BASE/log/gcluster gn_log_home$GBASE_BASE/log/gbase loader_log_home$GCLUSTER_BASE/log/gcluster/loader_logs gcware_home$GCWARE_BASE/log/ c_gc_express() { doc$gc_log_home/express.log fsizestat -c %s $doc if [ $fsize -gt $ceiling ];then echo $doc fi } c_gn_express() { doc$gn_log_home/express.log fsizestat -c %s $doc if [ $fsize -gt $ceiling ];then echo $doc fi } c_gc_system() { doc$gc_log_home/system.log fsizestat -c %s $doc if [ $fsize -gt $ceiling ];then echo $doc fi } c_gn_system() { doc$gn_log_home/system.log fsizestat -c %s $doc if [ $fsize -gt $ceiling ];then echo $doc fi } c_gcware() { doc$gcware_home/gcware.log fsizestat -c %s $doc if [ $fsize -gt $ceiling ];then echo $doc fi } c_gc_loader_log() { #删除当天之前的 cd $loader_log_home find -type d -mtime 0 |grep -v ^.$ |xargs rm -rf } main() { c_gc_express c_gn_express c_gc_system c_gn_system c_gcware c_gc_loader_log } main