脚本练功
对于经常需要在类UNIX环境下进行开发,深厚的脚本功底几乎算是必须的,这点上开发真的得多向运维的童鞋们学习学习。做运维攻城狮很大程度上依靠脚本及类脚本的工具来工作。对于开发过程,若是有扎实的脚本功底,平时工作的效率提升不是一点半点,让手里的工作自动化。 尤其现在推行DevOps的概念,公司里的日常服务器运维工作基本都交由开发了。
一.find
find命令使用的场景比较多,首先是一头雾水的时候,需要查找可能有用的文件
1.查找指定目录下的指定文件
find . -name "test"
2.查找指定目录下的大文件(一般经常磁盘容量不够报警,需要清除)
find . -type f -size +40M -print0 | xargs -0 du -h | sort -nr | head -12
查找当前目录下,文件类型,大小超过40M的文件并打印出来,按照逆序排序,仅列出前12个
3.查找深度为2的大目录并排序
du -h --max-depth=2 | sort -n
可以参考这篇文章,写的不错
http://www.cnblogs.com/kerrycode/p/4391859.html
二.grep
统计文本中某字符串出现次数,结合wc命令。参数 -l 表示统计行数
grep -o "success" ./revise-5121498611000225.log | wc -l
三. split
文件分割
摘自:http://blog.csdn.net/lsbhjshyn/article/details/9404225
split -l 1000 message.log message #按每个文件1000行来分割
split -b 5m message.log message #按每个文件5M来分割
1 time ./test.sh 20145544
3.编写自动运行的脚本
4.环境变量的配置
临时环境变量配置:
export PATH=/yourdirectory/:$PATH
永久环境变量:
写入启动脚本中
5.VI/VIM的使用和配置
6.获取shell脚本执行时间
time ./test.sh 20150216
7.正则表达式匹配。
每天想一想,你还和沙比一起共事,能不快点努力么?再想想,恶心不?