训练1训练2训练3训练4总结
训练11、编写脚本,判断当前系统剩余内存大小,如果低于100M,邮件报警管理员,使用计划任务,每10分钟检查一次。
装包:mailx,postfix(收发邮箱)
重启服务:systemctl restart postfix
编辑crontab:crontab -e
(邮件信息存放的地方再/var/spool/mail/用户文件内)
*/10 * * * * root echo "Memory_Available lower than 100mib"|mail -s"LinuxMEMoryInfo" root //crontab循环执行:每10分钟运行一次发送 标题为"LinuxMEMoryInfo"内容为"Memory_Availble lower than 100mib"的信息给root用户
新建一个独立的shell文本根据条件运行crontab
#!/bin/bash mem=`grep MemAvailable /proc/meminfo` memcut=`echo ${mem##*:}|cut -d' ' -f1` if [[ $memcut > 102400 ]];then echo "Normal state" systemctl start crond else echo "Mem lower than 100Mib" systemctl stop crond fi训练2
第一题does not exist的信息,并终端程序; 2.若文件存在,则判断它是文件或者目录,结果输出Filename is regular file 或者 Filename is directory. 3.判断下,执行者的身份对这个文件或者目录所有的的权限,并输入权限数据
#!/bin/bash read -p "file:" filename if [ -f $filename ];then echo "$filename is regular file"&&echo root:&&(ls -l $filename|cut -b 1-4) #获取文件的第1-4个权限字符信息 elif [ -d $filename ];then echo "$filename is directory"&&echo root:&&(ls -ld $filename|cut -b 1-4) #获取目录的第1-4个权限字符信息 else echo "$filename doesn't exist" fi训练3
1.当执行一个程序的时候,这个程序会让用户选择Y或N 2.如果用户输入Y或者y时就显示ok,continue 3.如果用户输入N或者n时,就显示oh,interrupt 4.如果不是Y/y/N/n之内的其他字符,就显示 I don’t know what your chocie is
#!/bin/bash read -p"input Y/N:" r if [[ $r =~ ^[yY]+$ ]];then echo ok,continue elif [[ $r =~ ^[nN]+$ ]];then echo oh,interrupt else echo "I don't know what you chosen" fi训练4
使用bash进行:1.程序的文件名是? 2.共有几个参数 3.若参数的个数小于2则告知使用者数量太少 4.全部参数内容是什么 5.第一个参数是什么 6第三个参数是什么
#!/bin/bash #r=$* 传入参数的一种方式,执行时通过“sh文件+参数”进行传参 #echo $r 执行结果为执行时sh后 输入的参数 #echo $r 执行结果为执行时sh后 输入的参数 i=$* #传入的参数 i1= #传入参数的第1个 i3= #传入参数的第3个 p=$# #传入参数的个数 whereis $i echo "Total parameter:$p" if [[ $p < 2 ]];then echo "Parameter is too fewn" echo "Parameters:$i" echo "1st parameter:$i1" echo "3rd parameter:$i3" else echo "Parameters:$i" echo "1st parameter:$i1" echo "3rd parameter:$i3" fi总结
要区分[],[[]],{}的使用情况,并且要学会综合的审阅题目,学会多层次调用程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)