美文网首页资源干货程序员我用 Linux
如何写一个 查看服务器日志 脚本

如何写一个 查看服务器日志 脚本

作者: 4d4a34d7707f | 来源:发表于2017-03-28 20:17 被阅读133次

    作为一个程序员,怎么能不用一些脚本来做一些神奇的事情呢?最近后台工作很忙,查看日志只能交给我们客户端,不过感觉都是重复性操作,就想着写成一个脚本,遇到了很多问题

    一 : 这个脚本的动作是

    1 先把本机的用户改为root用户 因为服务器的用户名是root

    sudo -i
    

    需要输入密码

    2 然后用ssh登陆到服务器

    ssh name@domini
    

    然后输入密码

    3 然后需要找到对应的位置 tail -f 一下out文件 就可以了

    二 : 开始写

    1 模拟键盘输入就是输入密码的动作

    这个问题百度了一下要安装expect 具体方法就不写了网上一大堆
    装好了之后

    #!/usr/bin/expect
    spawn sudo -i
    expect "Password:"
    send "你的密码\n"   #此处的\n为模拟键盘的enter键
    spawn ssh  name@domini  "tail -f 日志路径"
    #ssh name@domini "命令" 此方式是登陆并且执行服务器命令
    expect "*password:"
    send "你的密码\n"
    interact
    

    作为一个程序员应该考虑多一点,比如加一个口令啦,加一个提醒了本以为只是加一个sh的if就可以了,可是怎么在shell里调用expect呢?

    2 shell里调用expect

    #!/bin/sh
    read -p "is lookLog?yes|no:" result
    if [ "$result" == "yes" ] #注意这里的写法,[]里两边一定要留空格,不然sh识别不出来
    then
    echo 'hha'
    
    /usr/bin/expect<<EOF    #此方式是在sh中执行expect命令
        spawn sudo -i
        expect "Password:"
        send "密码\n"
        spawn ssh username@host"tail -f 日志路径"
        expect "*password:"
        send "密码\n"
        set timeout -1 #注意代表一直等待下去,如果不设置就会用默认值10s之后expec就会继续执行下去就进程完成了
        expect eof  #注意原来的interact(互动)要改为 expecteof
    EOF
    else
    echo 'hehe'
    fi
    

    在此说一下timeout,我认为是一个全局的变量,代表等待多长时间就继续执行,因为没有写interact ,而日志要一直监控,所以timeout设置为-1就是一直等待下去

    后语:这样你就可以赋执行权限,然后放在桌面,需要的时候只要点击就可以了。

    相关文章

      网友评论

      本文标题:如何写一个 查看服务器日志 脚本

      本文链接:https://www.haomeiwen.com/subject/ktlsottx.html