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

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

一 : 这个脚本的动作是

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<

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就是一直等待下去

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值