shell脚本批量获取远程服务器多个项目的日志
来源:互联网 发布:平台软件开发合同 编辑:程序博客网 时间:2024/05/29 11:09
shell批量获取日志
最近日志比较多, 而且压缩了日志, 并没有上ELK. 临时需要来获取项目的运行日志, 并且解压呈现出来.
***1. 需求环境
apache/nginx 并且指定一个本地服务器的log服务作为web服务对外的路径.
这里我用的本地的/home/www/log/shell运行环境. 我用的debian
***2. 脚本如下
需要获取三个目录的日志, 因为现在日志命名问题, 所以取了三个数组来循环.
提供最近3天的log获取和全量日志获取.
使用了scp来同步日志.
#!/bin/bashset -edeclare -a log_proj1 log_work log_proj2proj_name="proj1 proj2 proj3"bak_dir="/home/www/logs/"file_tailer='.log.gz'd0_date=`date +%F`.log.`date +%Y%m%d`d1_date=`date +%F`.log.`date +%Y%m%d`d2_date=`date -d -1day +%F`.log.`date -d -1day +%Y%m%d`d3_date=`date -d -2day +%F`.log.`date -d -2day +%Y%m%d`d4_date=`date -d -3day +%F`.log.`date -d -3day +%Y%m%d`# proj1log_proj1[1]='main-'${d0_date}.*log_proj1[2]='main-'${d1_date}_*${file_tailer}log_proj1[3]='main-'${d2_date}_*${file_tailer}log_proj1[4]='main-'${d3_date}_*${file_tailer}log_proj1[5]='main-'${d4_date}_*${file_tailer}# proj2log_proj2[1]='console-'${d0_date}.*log_proj2[2]='console-'${d1_date}_*${file_tailer}log_proj2[3]='console-'${d2_date}_*${file_tailer}log_proj2[4]='console-'${d3_date}_*${file_tailer}log_proj2[5]='console-'${d4_date}_*${file_tailer}# proj3log_proj3[1]='console-'${d0_date}.*log_proj3[2]='console-'${d1_date}_*${file_tailer}log_proj3[3]='console-'${d2_date}_*${file_tailer}log_proj3[4]='console-'${d3_date}_*${file_tailer}log_proj3[5]='console-'${d4_date}_*${file_tailer}sync_3_day_log() { for i in ${proj_name} do if [ ! -d "$bak_dir$i" ]; then mkdir "$bak_dir$i" fi logs="log_"${i}"[@]" for log in ${!logs} do scp -P2222 user@123.456.789.10:/logs/project/${i}/$log $bak_dir > /dev/null 2>&1 full_log=$bak_dir$i/$log if [ ${full_log##*.} = "gz" ] > /dev/null 2>&1; then gzip -d $full_log fi done done echo 'Sync done'}sync_all_log() { for i in ${proj_name} do if [ ! -d "$bak_dir$i" ]; then mkdir "$bak_dir$i" fi scp -r -P1022 user@123.456.789.10:/logs/project/${i}/ $bak_dir > /dev/null 2>&1 echo "All "$i" log sync done!\n"; for log in `ls -la $bak_dir$i | awk '{print $9}'` do full_log=$bak_dir$i/$log if [ ${full_log##*.} = "gz" ] > /dev/null 2>&1; then gzip -d $full_log fi done done echo 'Sync done'}#sync_3_day_logsync_all_log
0 0
- shell脚本批量获取远程服务器多个项目的日志
- shell脚本获取CPU利用率并记录到远程服务器的MYSQL数据库
- linux远程批量执行命令的shell脚本
- shell脚本备份本地服务器的文件到远程服务器
- 在远程服务器上执行本地的shell脚本
- Shell脚本FTP获取远程主机文件的操作
- Shell脚本学习(二)制作SSH登录远程服务器的Shell脚本
- 利用shell脚本批量获取主机信息
- 远程批量获取服务器启动时间
- 简单远程服务器日志归档查询脚本
- 备份远程服务器文件简单shell脚本
- java怎么调用远程服务器上的shell脚本 二参数调用远程
- shell脚本定时将批量日志导入到infobright的方法
- 日志分析的shell脚本
- 删除日志的shell脚本
- shell 脚本获取服务器应用状态
- 同一域名对应多个IP时,获取指定IP服务器的远程网页内容
- 批量获取bin/lib链接库依赖关系的shell脚本
- 【九度】题目1096:日期差值
- 3064: Tyvj 1518 CPU监控
- Ubuntu新手-tar 解压缩命令详解
- C#中基于GDI+(Graphics)图像处理系列之图片压缩优化
- C#获取当前应用程序所在路径及环境变量
- shell脚本批量获取远程服务器多个项目的日志
- C控制语句:循环
- RxJava与Retrofit 结合请求后台数据并解析
- 记一篇关于android PopupWindow
- LDD之PCI设备
- 1.6
- Unity调用android的方法,android调用Unity的方法,unity和安卓的交互
- 《合成孔径雷达成像——算法与实现》之【13】仿真图5.18
- PHP学习笔记之PHP文件上传(五)