免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3192 | 回复: 0
打印 上一主题 下一主题

openssh 妙用之远程执行命令---自动下载apache日志文件 [复制链接]

论坛徽章:
1
处女座
日期:2013-08-19 15:17:06
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-07 14:44 |只看该作者 |倒序浏览

应用,一切都是应用!
本文介绍了2个点:一个是利用ssh直接登陆别的机器(不需要密码了),另外一个就是配置apache每隔一段时间自动切换日志文件。这一切通过一个autosftp.sh.v2的脚本这个实例来介绍。
openssh 妙用之远程执行命令---自动下载apache日志文件
一. 前期准备
目标: 需要把多台机器上的apache日志自动下载到本地进行分析
背景:
    1. web主机共有3台,分别为web1 web2 web3 均为solaris系统
    2. 本地机器traffic为linux 7.3
    3. 整个过程需要自动执行不需要人工干预
    4. 考虑采用安全的ssh协议来传输日志文件
   
思路:
    1. 配置traffic和web主机之间ssh工具可以直接登陆
    2. 配置web主机上的apache每天自动切换日志,不再往前一天日志写入。
    3. traffic上执行脚本自动压缩web主机上的日志文件,然后下载到本地
    4. traffic执行本地命令解压缩下载下来的日志文件
   
二. 实施过程
    1. 配置traffic和web主机之间ssh工具可以直接登陆
   
       1.1 编辑traffic的hosts文件增加web主机条目
      
           ......
           203.81.*.*            web1
           203.81.*.*            web2
           203.81.*.*            web3
       1.2 生成ssh客户密匙
           #ssh-keygen -t rsa
           屏幕显示(为生成公匙密匙文件和等,全部回车即可)
           Generating public/private rsa key pair.
           Enter file in which to save the key (/root/.ssh/id_rsa):   
           Enter passphrase (empty for no passphrase):
           Enter same passphrase again:
           Your identification has been saved in /root/.ssh/id_rsa.
           Your public key has been saved in /root/.ssh/id_rsa.pub.
           The key fingerprint is:
           d1:69:34:80:56:2a:2d:df:70:2d:10:ac:63:5e:1e:1c
[email=root@web]root@web[/email]
         
        1.3 生成后,将本地的id_rsa.pub复制到远程的./ssh目录下,更改名称为authorized_keys2
            sftp
[email=root@web1]root@web1[/email]
            sftp web1
            Connecting to web1
            
[email=root@web1's]root@web1's[/email]
password: (输入密码)
            sftp>
            sftp>cd .ssh
            sftp>put id_rsa.pub  authorized_keys2
            Uploading id_rsa.pub to /.ssh/authorized_keys2
            
        1.4 测试是否成功
        
            scp web1:/usr/local/apache2/logs/hoho /root/    复制远程的hoho文件到本地的/root/.ssh目录下,无需输入密码
            hoho        100%   40KB  40.2KB/s   00:00 (屏显状态值,显示已传输完毕,文件可正常使用)
        1.5 补遗或者注解
        
            a. 第一次登陆web1,ssh会提示将web1加入自己know_hosts里面。
            b. 直接登陆验证是区别用户的,authorized_keys2文件是分用户的。
     
     2. 配置web主机的每天自动切换日志文件
     
        在配置文件中加入下面两句,如果有虚拟主机就加到虚拟主机的配置里面
        
        CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/mytestsite-access_log.%Y%m%d 86400" combined
        TransferLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/mytestsite-access_log.%Y%m%d 86400
   
     3. traffic上自动执行的脚本
     
#!/bin/bash
# This script is for auto download the log life of apache
# editor anwei,green
# version 2.0
# add 2 parameters GateWay & LogFile
# add more information for debug
# add The starting time & the ending of time
#  step 1 : parameters setting ,add default gateway
Dest_dir=/data/logs
Sour_dir=/usr/local/apache2/logs
LogFile=mytestsite-access_log
Host_table="web1 web2 web3"
Date=`date +%Y%m%d -d '-1 day'`
GateWay=192.168.1.1
echo Beginning:`date +'%Y/%m/%d %H:%M'`
/sbin/route add default gw $GateWay
#  step 2 : compress log file
for loop in $Host_table
  do
    ssh $loop "/usr/bin/gzip $Sour_dir/$LogFile.$Date " && echo $loop : compress apache log file complete.
  done
#  step 3 : download form web server
for loop in $Host_table
  do
    scp $loop:$Sour_dir/$LogFile.$Date.gz $Dest_dir/$loop && echo $loop : download apache log file complete.
  done
#  step 4 : uncompress log files
for  loop in $Host_table
  do
    /bin/gzip -df $Dest_dir/$loop/$LogFile.$Date.gz
    /bin/cat   $Dest_dir/$loop/$LogFile.$Date > $Dest_dir/$loop/$LogFile && echo $loop : log files Ready now.
  done
/sbin/route delete default gw $GateWay
echo End:`date +'%Y/%m/%d %H:%M'`
      
     4. traffic上面部署cron任务自动执行
     
        15 8 * * * /tools/autosftp.sh.v2 >> /tools/sftp.log 2>&1
        
        
     5. 每天可以通过检查sftp.log的内容查看脚本的执行情况
     
        实际运行一周以来,全部顺利执行结束,下面是sftp.log的片断
        
Beginning:2005/11/06 08:15
web1 : compress apache log file complete.
web2 : compress apache log file complete.
web3 : compress apache log file complete.
web1 : download apache log file complete.
web2 : download apache log file complete.
web3 : download apache log file complete.
web1 : log files Ready now.
web2 : log files Ready now.
web3 : log files Ready now.
End:2005/11/06 08:46


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8983/showart_55609.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP