shell脚本批量获取远程服务器多个项目的日志

来源:互联网 发布:平台软件开发合同 编辑:程序博客网 时间:2024/05/29 11:09

shell批量获取日志

最近日志比较多, 而且压缩了日志, 并没有上ELK. 临时需要来获取项目的运行日志, 并且解压呈现出来.

***1. 需求环境

  1. apache/nginx 并且指定一个本地服务器的log服务作为web服务对外的路径.
    这里我用的本地的/home/www/log/

  2. 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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 平果充电线不匹配怎么办 苹果六外壳掉漆怎么办 苹果平板充电没反应怎么办 苹果平板黑屏没反应怎么办 苹果平板卡机了怎么办 苹果7plus掉漆怎么办 皮的手机壳脏了怎么办 小米5x边边裂开怎么办 荣耀8的后盖摔了怎么办 hp打印机卡了纸怎么办 华为荣耀9进水了怎么办 小米5x屏幕脱胶怎么办 小米5x后盖松动怎么办 苹果手机没电了怎么办 荣耀9的后盖裂了怎么办 手机一直在开机画面怎么办华为 华为手机一直显示开机画面怎么办 华为p7手机开不了机怎么办 华为荣耀8弯了怎么办 手机壳掉漆了怎么办 华为5a手机音量小怎么办 华为5a手机声音小怎么办 苹果屏幕磨花了怎么办 白色磨砂手机壳脏了怎么办 胶皮手机壳变黄怎么办 手机壳边缘黑了怎么办 手机壳磨黑了怎么办 iphon8原装后壳碎裂怎么办 皮的手机壳发黄怎么办 荣耀手机一直在开机画面怎么办 玻璃手机壳碎了怎么办 华为6x信号不好怎么办 昂达平板v819i刷成砖了怎么办 华为5x忘记密码怎么办 荣耀8开不了机怎么办 华为5s死机了怎么办 华为重启后忘了解锁密码怎么办 华为mate.9上网速度慢怎么办 华为mate10上网速度慢怎么办 四核豌豆2变砖怎么办 苹果32g不够用怎么办