免费注册 查看新帖 |

Chinaunix

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

[系统管理] SHELL笔试题续 [复制链接]

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-05 18:07 |只看该作者 |倒序浏览
本帖最后由 stupid_lee 于 2014-09-05 23:15 编辑

1. 用MV命令将test目录下所有.txt为扩展名的文件全部变为.exe为扩展名的文件

目录结构如下

#tree /test
/test
-----aa01.txt
-----aa02.sh
-----test1
--------bb01.txt
-----test.txt

也就是最终将aa01.txt  test.txt 以及test1子目录下的bb01.txt 拓展名均变为.exe

2.有10台服务器已经相互之间做了ssh互信、现在要分析 每台服务器/var/log/svr.log 日志中是否存在error关键字,若有则打印出该服务器ip地址,输出结果示例:
假设192.168.1.5和192.168.1.7这两台服务器日志中有error关键字,则输出

192.168.1.5
192.168.1.7                     

这事我参加某企笔试的题目,大家有没有什么好的办法

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
2 [报告]
发表于 2014-09-05 19:07 |只看该作者
1.
  1. rename .txt .exe *.txt
复制代码
2.
  1. while read IP ; do ssh -n -o StrictHostKeyChecking=no $IP "grep -q error /var/log/svr.log" && echo $IP  ; done < iplist.txt
复制代码

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
3 [报告]
发表于 2014-09-05 22:58 |只看该作者
  1. for i in $(find . -type f -name "*.txt");do rename .txt .exe $i;done


  2. for i in $(echo "192.168.1.1 192.168.1.2 192.168.1.n");do ssh "$i" "grep -q error /var/log/svr.log"&&echo $i;done
复制代码

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
4 [报告]
发表于 2014-09-05 23:19 |只看该作者
回复 3# dn833

第二条语句不会打印出要求的效果,通过ssh连接到了其他服务器,此时打印的$i 已经不是脚本里的$i了


   

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
5 [报告]
发表于 2014-09-06 00:25 |只看该作者
回复 4# stupid_lee


    just have a try

论坛徽章:
3
丑牛
日期:2014-09-13 18:19:22摩羯座
日期:2014-10-10 17:43:02水瓶座
日期:2014-10-16 01:00:22
6 [报告]
发表于 2014-09-06 00:57 |只看该作者
学生党:无聊~
[yhsafe@shell ~]$ find . -iname "*.txt"|xargs -i rename .txt .exe {}
[yhsafe@shell ~]$ for ip in 172.24.10.{1..10};do (ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=3 $ip "grep -q error /var/log/svr.log") 2>/dev/null && echo $ip ;done

论坛徽章:
0
7 [报告]
发表于 2014-09-06 12:06 |只看该作者
for i in $(find . -type f -name "*.txt"|sed 's/.txt$//'|sed 's/^.//')
do
mv /test${i}.txt /test${i}.exe
done
第二个没环境不会测试

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
8 [报告]
发表于 2014-09-06 12:50 |只看该作者
回复 2# reyleon


问题的关键是ssh到另一台主机后,还能够echo$ip吗。你不信试一下,两台主机,写一个脚本ssh到另一台主机,通过判断后echo $ip ,这样是打印不出来的


   

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
9 [报告]
发表于 2014-09-06 13:04 |只看该作者
回复 7# 莫染123

第一个思路很不错受你启发
for i in `find / -name *.txt|sed 's/\(.*\).txt/\1/'`; do mv $i.txt $i.exe; done 搞定了

   

论坛徽章:
0
10 [报告]
发表于 2014-09-06 14:15 |只看该作者
远程执行本地脚本或者远程执行远程脚本,确实是很实用的运维脚本编写技能。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP