1
felix021 2014-01-13 17:28:12 +08:00
sed我很少用,不过find、awk、sort、uniq、grep、tail、head之类,在生产上倒是经常用到,简单跑点统计、查看日志什么的,都很有用。
|
2
hzlzh 2014-01-13 17:36:11 +08:00
awk +1
|
6
felix021 2014-01-13 18:19:30 +08:00
@gouera 以前在B公司实习的时候,他们做日志监控就是用tail+grep,把最新的Warning log拖出来发到邮件里
|
7
gouera OP @felix021 那这个要求这样写OK不
tail -1000 /var/log/messages | grep Warning >warning.log mail -s warning [email protected] <warning.log rm -rf warning.log |
8
nervouna 2014-01-13 18:35:26 +08:00
写小工具,作为几道工序之间的中间件还是很赞的
分享一个我同事写的 bash 脚本,用来自动打包 iOS app 然后上传到指定服务器: https://gist.github.com/linyize/8034386 |
13
nervouna 2014-01-13 18:47:48 +08:00 1
@gouera 我也没写过这么长的,50 行对我来说已经很长了……习惯了其它编程语言,去写 Bash 会觉得很蛋疼,各种加不加空格的规则总是忘。主要还是不经常写,估计经常写的人会记得熟一些吧。
|
16
c0878 2014-01-13 20:07:25 +08:00 1
拿运维工作举例 拿一份access.log过来 用脚本获取某个时段访问最多的ip按次数排列,获取响应时间超过3s的url之类的
也可以弄出自动开通ftp账户,自动配置apache/nginx站点之类的功能 用途很多的 |
17
gouera OP @felix021 这个怎样。。
#!/bin/bash size="0K" [ -e size.txt ] || touch size.txt [ ! -z size.txt ] && size=`cat size.txt` tail -c "+${size}" /var/log/messages | grep Warning | uniq > warning.log mail -s warninglog [email protected] <warning.log #rm -rf warning.log ls -sh /var/log/messages | awk '{print $1}' >size.txt size变量哪里是0K 不是OK... |
18
felix021 2014-01-13 21:14:44 +08:00
@gouera
1. ls的-h参数一定是以KB为单位么? 2. tail 的 -c 参数是以KB为单位么? 3. 如果这个脚本执行的时候不是在脚本所在位置执行会出现什么问题? 4. warning.log这个中间文件是必要的吗? |
19
gouera OP |
20
halfbloodrock 2014-01-13 22:56:46 +08:00
RVM的几个shell脚本是经典的学习例子。
|
21
jybox 2014-01-13 23:29:13 +08:00
我感觉bash最适合写安装脚本,毕竟是所有发行版都支持的
|
22
loryyang 2014-01-14 14:19:55 +08:00
做一些简单的自动化操作和文本分析。但是说实话,现在的脚本语言,比如python、perl什么的牛逼多了,bash只是更加贴近操作系统,这个算是一个优势吧
|