脚 本 练 习 题(四)

1.按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2013-09-23.log, 并且把磁盘的使用情况写到到这个文件中。

#! /bin/bash
d=`date +%F`
logfile=$d.log
df -h > $logfile

然后再增加一条每日定点执行的任务计划即可,或(sleep 24*60*60)

2.ps 可以查看进程的内存占用大小,写一个脚本计算一下所有进程所占用内存大小的和。(提示,使用ps aux 列出所有进程,过滤出RSS那列,然后求和)

#! /bin/bash
sum=0
for mem in `ps aux |awk ‘{print $6}‘ |grep -v ‘RSS‘ `
do
    sum=$[$sum+$mem]
done
echo "The total memory is $sum""k"

也可以使用awk 一条命令计算:

ps aux | grep -v ‘RSS TTY‘ |awk ‘{(sum=sum+$6)};END{print sum}‘

3.设计一个脚本,监控远程的一台机器(假设ip为123.23.11.21)的存活状态,当发现宕机时发一封邮件给你自己。

#! /bin/bash
while : ;do
ping -c10 123.23.11.21 > 1.txt
........
sleep  30
提示:
1. 你可以使用ping命令   ping -c10 www.baidu.com
2. 发邮件的命令是  echo "邮件内容" |mail -s "主题" [email protected]
3. 脚本可以搞成死循环,每隔30s检测一次

4.判断本机的80端口是否开启着,如果开启着什么都不做,如果发现端口不存在,那么重启一下httpd服务,并发邮件通知你自己。脚本写好后,可以每一分钟执行一次,也可以写一个死循环的脚本,30s检测一次。

#port=80
po=80
#mail
[email protected]
while :;do
        rs=`netstat -anlp|grep ‘:80‘ |wc -l`
        if [ $rs -eq 0 ];then
     #  a=`netstat -lnp |grep ":80" >/dev/null`
     #  if [ -z $a ];then
                echo "The port $po is die"|mail -s "message" $ma
                service httpd start;
        fi
        sleep 30
done
#! /bin/bash
[email protected]
if netstat -lnp |grep ‘:80‘ |grep -q ‘LISTEN‘; then
    exit
else
    /usr/local/apache2/bin/apachectl restart >/dev/null 2> /dev/null
    echo "The 80 port is down."|mail -s ‘check_80‘ $mail
    n=`ps aux |grep httpd|grep -cv grep`
    if [ $n -eq 0 ]; then
        /usr/local/apache2/bin/apachectl start 2>/tmp/apache_start.err
    fi
    if [ -s /tmp/apache_start.err ]; then
        mail -s ‘apache_start_error‘ $mail < /tmp/apache_start.err
    fi
fi
时间: 2025-01-14 16:24:38

脚 本 练 习 题(四)的相关文章

脚 本 练 习 题 (二)

用脚本把当前目录下的目录打印出来,打印一级目录即可: #!/bin/bash for f in `ls`             do     if [ -d  $f ]     then          echo $f     fi done ------------------------------------------------------------------------------------ 创建一个函数,能接受两个参数: 1)第一个参数为URL,即可下载的文件:第二个参数

我 的 一 些 练 习 题

1. 简述GNU以及gpl的含义. GNU是1983年有Richard Stallman提出的一项自由软件运动,要求我们自由使用.自由更改.自由发布软件:GPL是定义如何自由的协议. 2. 列出你熟知的Linux发行版. Linux发行版:Redhat.CentOS.Ubuntu.Debian.Feroda.SuSE等 3. 你知道Unix和Linux之间的关系吗? Linux是类Unix系统,可以说是由Unix衍生而来 4. 如何查看你的Linux是64位还是32位? uname -r,得到结

KMP算法的定义及KMP练手题 HDU 1711 Number Sequence (我的模板代码)

题意:就是要你来找出b数组在a数组中最先匹配的位置,如果没有则输出-1 思路:直接KMP算法(算法具体思想这位牛写的不错http://blog.csdn.net/v_july_v/article/details/7041827) AC代码: #include<cstdio> #include<cstring> #include<stdlib.h> #include<iostream> using namespace std; #define maxn 100

练手题,没事就来AC吧 poj 4044 Score Sequence

此题为12年金华邀请赛A题 克隆了下比赛,A题最简单,也是最挑战人数据处理能力的一题,可惜自己数据处理能力太弱 久久不能写出代码---- 总结下就是题做少了,平时应多做题,少灌水,应放下看电影的时间,玩各种软件的时间 先做好一项再说才是正道,看到一句话说得好 "   人有两条路要走,一条是必须走的,一条是想走的,你必须把必须走的路走漂亮,才可以走想走的路..." 不扯了,贴代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

iOS9-by-Tutorials-学习笔记四:APP-瘦身

iOS9-by-Tutorials-学习笔记四:APP-瘦身 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue 独立博客:http://mengxiangyue.com 这篇文章在书中的标题是App Thinning,这里我给翻译成了App 瘦身. 本文然然进行了一些语法的修改,很开心她为我修改这些东西.她说我转折只会用但是,被她这么一说想想还真是只是会用但是,嘿嘿. iPhone经过这几年的发展,已经发生了很大的变化,例

【C语言天天练(十四)】const关键字详解

const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的安全性和可靠性,另外,了解const的作用,在看别人的代码时,对理解对方的程序有一定帮助. 1.const可以理解成是"只读变量"的限定词,从这里可以看出,const修饰的是变量,跟常量是不同的,常量是被编译器放在内存中的只读区域,当然也就不能够去修改它.而"只读变量"则是在内存中开辟一个地方来存放它的值,只不过这个值由编译器限定不允许被修改.const就是用来限定一

必 备 习 题 集 ( 四 )

作业题: 自动获取IP地址的命令是什么?您知道在什么情况下,您的Linux才可以自动获取IP地址? 2. 远程连接Linux服务器,需要Linux服务器开启sshd服务,那么sshd服务默认监听哪个端口?这个端口是否可以自定义呢?如果可以,如何自定义? 3. 列举出常用的远程连接linux的终端工具有哪些? 4. 手动配置IP,需要修改哪个配置文件? 更改默认的配置文件,需要更改哪些地方,需要增加哪几行? 5. 重启网络服务的命令是什么? 6. 配置DNS需要修改哪个配置文件? 7. 请查资料了

《剑指Offer》题三十一~题四十

三十一.栈的压入.弹出序列 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的数字均不相等.例如,序列{1, 2, 3, 4 ,5}是某栈的压栈序列,序列{4, 5, 3, 2, 1}是该压栈序列对应的一个弹出序列,但{4, 3, 5, 1, 2}就不可能是该压栈序列的弹出序列. 分析:本题中的压栈序列并非是一次全部压入堆栈!如果没有思路,可以举一两个例子,一步步分析压栈.弹出的过程,从中找出规律. 三十二.从上到下打印二叉树 题目一:不分行从

LeetCode第十八题-四数之和

4Sum 问题简介:定n个整数和整数目标的数组nums,是否有元素a,b,c,d在nums中,使a+b+c+d=target? 举例: 给定数组 nums = [1, 0, -1, 0, -2, 2], 目标值 target = 0. 结果: [ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2] ] 解法一:先将数组排序,通过三层循环,寻找是否符合四数之和的结果 注: 1.contains方法使用场景 list/Set - contains() Map -