资讯详情

收集容器日志脚本

📅 2026/11/3 2:18:13 | 华诺云谱 👁 阅读
收集容器日志脚本
#!/bin/bash COMPOSE_PATH/data/ir/ LOG_BASE/data/fi/logs/container_logs ymlfi.yml mkdir -p ${LOG_BASE} cd ${COMPOSE_PATH} || { echo ERROR: 无法进入目录 ${COMPOSE_PATH} exit 1 } PID_FILE${LOG_BASE}/collect.pid ${PID_FILE} echo 正在读取服务列表... SERVICES$(docker-compose -f ${yml} config --services) echo ${SERVICES} for svc in ${SERVICES}; do logfile${LOG_BASE}/${svc}.log echo 启动采集${svc} - ${logfile} # --since now 只采集启动后新增日志 nohup docker-compose -f ${yml} logs -f -t ${svc} ${logfile} echo $! ${PID_FILE} sleep 0.2 done echo echo 日志输出目录${LOG_BASE} echo 进程PID文件${PID_FILE} echo #!/bin/bash LOG_BASE/data/finicr/container_logs pkill -f docker-compose -f fin.yml logs -f pkill -f collect.sh # 杀掉所有日志采集子进程 pkill -f docker-compose -f f0.yml logs -f rm -f ${LOG_BASE}/collect.pid echo 采集进程已全部停止mkdir -p /data/f/shell目录存放脚本log_stop.sh log_collect.sh log_backup.sh 使用root编辑 这个文件vim /etc/logrotate.d/icr-container-log 添加如下内容 /data/fcr/logs/container_logs/*.log { daily dateext dateformat .%Y%m%d rotate 30 compress copytruncate missingok notifempty create 0644 or or su ocr ocr lastaction TODAY$(date %Y%m%d) DIR/data/fcr/logs/${TODAY} mkdir -p ${DIR} chown xyd:xyd ${DIR} chmod 755 ${DIR} find /data/cr/logs/container_logs -maxdepth 1 -type f -name *.log.${TODAY}.gz -exec mv {} ${DIR}/ \; endscript } 使用or用户执行 logrotate -vf -s /tmp/logrotate-state /etc/logrotate.d/cr-container-log 查看/data/fr/logs/下面是否按照日期生成文件夹 文件夹下面是否存在压缩日志 给普通用户ocr添加定时任务 执行 crontab -e -u or 添加 # 每日02:00 执行日志轮转使用独立状态文件避免权限报错 0 2 * * * /usr/sbin/logrotate -s /data/fin/logs/logrotate.state /etc/logrotate.d/fcr-container-log /data/fcr/logs/logrotate_run.log 21 # 每日03:00 统一执行远程备份当日日志 清理本地过期目录 #0 3 * * * /data/finicr/shell/log_backup_and_clean.sh#!/bin/bash # 每日03:00 统一执行远程备份当日日志 清理本地过期目录 #0 3 * * * /data/f/shell/log_backup_and_clean.sh ########################### 【可自定义参数区】########################### LOG_ROOT/data/f/logs LOCAL_RETENTION_DAYS15 # 本地归档目录保留天数按需修改 REMOTE_USERocr REMOTE_HOST远程服务器地址 REMOTE_BASE_PATH/data/f_backup/logs ######################################################################### TODAY$(date %Y%m%d) LOCAL_TODAY_DIR${LOG_ROOT}/${TODAY} LOG_FILE${LOG_ROOT}/backup_clean_run.log log_print(){ echo [$(date %Y-%m-%d %H:%M:%S)] $1 ${LOG_FILE} } log_print 任务开始 ## 步骤1备份当日归档目录 if [ -d ${LOCAL_TODAY_DIR} ]; then log_print 开始备份目录${LOCAL_TODAY_DIR} rsync -avz ${LOCAL_TODAY_DIR}/ ${REMOTE_USER}${REMOTE_HOST}:${REMOTE_BASE_PATH}/${TODAY}/ if [ $? -eq 0 ]; then log_print ✅ ${TODAY} 日志远程备份成功 else log_print ❌ ${TODAY} 日志远程备份失败 fi else log_print ⚠️ 当日归档目录 ${LOCAL_TODAY_DIR} 不存在跳过备份 fi ## 步骤2清理本地超过 N 天的日期归档文件夹 log_print 开始清理本地超过 ${LOCAL_RETENTION_DAYS} 天的归档目录 find ${LOG_ROOT} -maxdepth 1 -type d -regex .*/[0-9]{8} -mtime ${LOCAL_RETENTION_DAYS} -exec rm -rf {} \; log_print 本地清理执行完成 log_print 任务结束 \n
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑