Shell脚本练习题
2015-07-24 18:19
555 查看
20150722 星期三
1.按照格式xxxx-xx-xx每日生成一个日志文件,例如今天生成的文件为2013-09-23.log,并且把磁盘的使用情况写到文件中。(2013-09-23 shell练习题http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=5593&fromuid=4675)
#vi /usr/local/sbin/crontest1.sh
#!bin/bash
d=`date +%F` ` `反单引号,引用系统命令的执行结果
logfile=$d.log $引用变量的值
df -h > /var/log/$logfile 查看磁盘使用情况df -h;查看内存使用情况 free
#crontab -e 使用crontab -e/-l/-r(删除)/-u(指定用户,不加即当前用户)
0 0 * * * /bin/sh /usr/local/sbin/crontest1.sh 绝对路径 /bin/sh
-------------------------------------------------------------------------------------------
20150723 星期四
2.服务器上跑的是httpd,写一个监控脚本,每分钟检查一次httpd进程是否存在,若发现不在就启动它。
思路:ps aux查看httpd进程是否启动,如果没有启动,记录时间,并启动httpd服务。启动后,再次判断ps aux中是否有httpd进程,如果没有则记录错误日志,并且邮件通知管理员,人工检查原因,并且退出死循环。如果第一次判断httpd进程存在或则启动成功,则不记录log。(2014-10-17 shell脚本练习题http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=6977&fromuid=4675)
#! /bin/bash
##
##
log=/var/log/httpdcheck.log
while :; do
a=`ps aux |grep httpd |wc -l`
if [ $a -eq 0 ]; then
echo "[`date +'%F %T'`] httpd service is off.Try to start now" >>$log
/usr/local/apache2/bin/apachectl start >> $log
else
echo "httpd service is running."
exit
fi
sleep 3
b=`netstat -lnp |grep httpd |wc -l`
if [ $b -eq 0 ]; then
mail -s 'Htttpd service start fialed. Please check.' 1091322612@qq.com < $log
echo "[`date +'%F %T'`]httpd service start fialed. please check." >>$log
exit
else
echo "[`date +'%F %T'`] httpd service is started successfully." >>$log
fi
sleep 60
done
-------------------------------------------------------------------------------------------20150730 星期四
统计1.log文件中每个IP的访问量多少?提示:先awk过滤ip,再进行排序,uniq统计重复,再将重复次数进行排序。(9月25日shell脚本练习题http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=5601&fromuid=4675)
#awk -F'-' 1.log |sort -n |uniq -c|sort -n
1.按照格式xxxx-xx-xx每日生成一个日志文件,例如今天生成的文件为2013-09-23.log,并且把磁盘的使用情况写到文件中。(2013-09-23 shell练习题http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=5593&fromuid=4675)
#vi /usr/local/sbin/crontest1.sh
#!bin/bash
d=`date +%F` ` `反单引号,引用系统命令的执行结果
logfile=$d.log $引用变量的值
df -h > /var/log/$logfile 查看磁盘使用情况df -h;查看内存使用情况 free
#crontab -e 使用crontab -e/-l/-r(删除)/-u(指定用户,不加即当前用户)
0 0 * * * /bin/sh /usr/local/sbin/crontest1.sh 绝对路径 /bin/sh
-------------------------------------------------------------------------------------------
20150723 星期四
2.服务器上跑的是httpd,写一个监控脚本,每分钟检查一次httpd进程是否存在,若发现不在就启动它。
思路:ps aux查看httpd进程是否启动,如果没有启动,记录时间,并启动httpd服务。启动后,再次判断ps aux中是否有httpd进程,如果没有则记录错误日志,并且邮件通知管理员,人工检查原因,并且退出死循环。如果第一次判断httpd进程存在或则启动成功,则不记录log。(2014-10-17 shell脚本练习题http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=6977&fromuid=4675)
#! /bin/bash
##
##
log=/var/log/httpdcheck.log
while :; do
a=`ps aux |grep httpd |wc -l`
if [ $a -eq 0 ]; then
echo "[`date +'%F %T'`] httpd service is off.Try to start now" >>$log
/usr/local/apache2/bin/apachectl start >> $log
else
echo "httpd service is running."
exit
fi
sleep 3
b=`netstat -lnp |grep httpd |wc -l`
if [ $b -eq 0 ]; then
mail -s 'Htttpd service start fialed. Please check.' 1091322612@qq.com < $log
echo "[`date +'%F %T'`]httpd service start fialed. please check." >>$log
exit
else
echo "[`date +'%F %T'`] httpd service is started successfully." >>$log
fi
sleep 60
done
-------------------------------------------------------------------------------------------20150730 星期四
统计1.log文件中每个IP的访问量多少?提示:先awk过滤ip,再进行排序,uniq统计重复,再将重复次数进行排序。(9月25日shell脚本练习题http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=5601&fromuid=4675)
#awk -F'-' 1.log |sort -n |uniq -c|sort -n
相关文章推荐
- 什么是Shell?Shell脚本基础知识详细介绍
- 学习shell脚本之前的基础知识[图文]
- 用内置变量调试shell脚本的方法
- 自己常用的一些shell脚本分享
- 用Shell脚本快速搭建Ubuntu下的Nodejs开发环境
- MAC中用Shell脚本批量裁剪各种尺寸的App图标
- Shell实现系统时间和BIOS时间同步校准脚本分享
- Linux下实现SNMP一键安装的Shell脚本
- PHP教程之PHP中shell脚本的使用方法分享
- 实现MySQL定时批量检查表repair和优化表optimize table的shell脚本
- JS之小练习代码
- Ubuntu、Linux Mint一键安装Chrome浏览器的Shell脚本分享
- shell脚本监控系统负载、CPU和内存使用情况
- windows下写的shell脚本在linux执行出错的解决办法
- 写出健壮Bash Shell脚本的一些技巧总结
- shell脚本中执行时提示“没有那个文件或目录”的解决办法
- shell脚本实现随机生成10个8位密码
- 把mysql查询结果保存到文件的shell脚本
- 一个测试下载速度的shell脚本
- Shell脚本实现的基于SVN的代码提交量统计工具