脚 本 练 习 题(三)
2015-10-30 22:11
555 查看
一,写个脚本,计算100以内所有奇数的和以及所有偶数的和,分别显示出来;
#Date:2014-12-18 23:00
#Author:Jianghongxi
#-----------------------------#
rm -f suijishu.txt
for i in `seq 1 10`;do echo $RANDOM>>suijishu.txt
done
sort -nr suijishu.txt -o suijishu.txt
cat suijishu.txt
echo The min number is :
sed -n '10'p suijishu.txt
echo The max number is :
sed -n '1'p suijishu.txt
三,写一个脚本,检查普通用户的家目录是否存在,比如apache用户存在,输出“apache's homedir is exist,very good”,如apache用户不存在,输出“apache's homedir isn't exist,so bad”
1.添加5个用户,user1,...,user5
2.每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令执行结果信息;
3.每个用户添加完成后,都要显示用户某某已经添加成功;
八,有时候网站访问超级慢,用top查看发现负载挺高的,然后ps看一下进程,发现许多任务计划在跑;写脚本杀掉这些在跑的进程;另外写脚本杀掉启东的脚本;
2014-09-29 10:11
eth0 input: 1000bps
eth0 output : 200000bps
################
2014-09-29 10:12
eth0 input: 1000bps
eth0 output : 200000bps
#! bin/bash sum=0 sum2=0 for i in `seq 1 100`;do if [ $((i%2)) -eq 0 ];then sum=$[$i+$sum] else sum2=$[$i+$sum2] fi done echo $sum echo $sum2二,写个脚本,利用RANDOM生成10个随机数,并找出其中的最大值和最小值;
#!/bin/bash MAXnum=0 MINnum=100000 for i in {1..10} do number[$i]=$RANDOM echo ${number[$i]} if [ ${number[$i]} -gt $MAXnum ] then MAXnum=${number[$i]} else MAXnum=$MAXnum fi if [ ${number[$i]} -lt $MINnum ] then MINnum=${number[$i]} else MINnum=$MINnum fi done echo "the max number of RANDOM list is $MAXnum ,the min is $MINnum !"#! /bin/bash
#Date:2014-12-18 23:00
#Author:Jianghongxi
#-----------------------------#
rm -f suijishu.txt
for i in `seq 1 10`;do echo $RANDOM>>suijishu.txt
done
sort -nr suijishu.txt -o suijishu.txt
cat suijishu.txt
echo The min number is :
sed -n '10'p suijishu.txt
echo The max number is :
sed -n '1'p suijishu.txt
三,写一个脚本,检查普通用户的家目录是否存在,比如apache用户存在,输出“apache's homedir is exist,very good”,如apache用户不存在,输出“apache's homedir isn't exist,so bad”
read -p "Input a user : " user awk -F: '$1=="$user"' /etc/passwd > 1.txt 或者 grep '$user' /etc/passwd > 1,txt n=`du 1.txt | awk -F " " '{print $1}'` if [ $n -eq 0 ] then echo "$user's homedir isn't exist,so bad" else echo "$user's homedir is exist,very good" fi rm -f 1.txt四,写一个脚本,完成以下任务
1.添加5个用户,user1,...,user5
2.每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令执行结果信息;
3.每个用户添加完成后,都要显示用户某某已经添加成功;
#!/bin/bash for i in `seq 1 5`;do if cat /etc/passwd | awk -F : '{print $1}'|grep user$i;then echo user$i " already exists" else useradd user$i echo user$i | passwd --stdin user$i echo user$i "add sucess" fi done五,写一个脚本: 计算100以内所有能被3整除的正整数的和
#!/bin/bash sum=0 for i in {1..100};do if [ $[$i%3] -eq 0 ];then sum=$[$i+$sum] fi done echo "sum:$sum" #########################ccccc #include <stdio.h> int main(void) { int i, sum = 0; for (i = 3; i <= 100; i += 3) sum += i; printf("%d\n", sum); return 0; }六,当前MySQL服务的root密码为123456,写脚本检测MySQL服务是否正常,并检测一下当前的MySQL服务是主还是从,如果是从,请判断它的主从服务是否异常。如果是主,则不需要做什么;
#!/bin/bash DBuser=root DBpasswd=123456 Mail="wang@163.com" Result=/tmp/mysql.txt State=`netstat -lnpt | grep 3306` if [ -z "$State" ] then # mail -s "Can't connect to Mysql database" $Mail < /dev/null echo "Can't connect to Mysql database" else mysql -u$DBuser -p$DBpasswd -e "show slave status\G" > $Result 2> /dev/null Slave_IO_Running=`grep -i slave_io_running $Result | cut -d : -f 2` Slave_SQL_Running=`grep -i slave_sql_running $Result | cut -d : -f 2` if [ "$Slave_IO_Running" != ' Yes' -o "$Slave_SQL_Running" != ' Yes' ] then # mail -s "Mysql replication has stopped" $Mail < $Result echo "Mysql replication has stopped" fi fi七,假如你服务器上跑的是httpd,那请写一个监控脚本,每分钟检查一次httpd进程是否存在,若是发现不在了,那么就启动它。
#/bin/bash server='netstat -lnp | grep httpd' if [ -z $server ];then echo "the httpd server is stoping" /usr/local/apache2/bin/apachectl start else echo "the service is running" fi sleep 60 done或用计划任务代替sleep;
八,有时候网站访问超级慢,用top查看发现负载挺高的,然后ps看一下进程,发现许多任务计划在跑;写脚本杀掉这些在跑的进程;另外写脚本杀掉启东的脚本;
ps aux |awk -F'' '$8=="R" {print $2}' |xargs kill -9; ps aux |awk -F'' '$11=="/bin/sh" {print $2}' |xargs kill -9九,写一个脚本,检测你的网络流量,并记录到一个日志里。需要按照如下格式,并且一分钟统计一次:
2014-09-29 10:11
eth0 input: 1000bps
eth0 output : 200000bps
################
2014-09-29 10:12
eth0 input: 1000bps
eth0 output : 200000bps
#!/bin/bash #Writen at 2014-09-30 while :; do d=`date +%F\ %H:%M` sar=/tmp/sar.txt sar -n DEV 1 59 >$sar input=`grep 'Average' $sar|awk '$2~/eth0/{print $5}'|awk -F'.' '{print $1}'` output=`grep 'Average' $sar|awk '$2~/eth0/{print $6}'|awk -F'.' '{print $1}'` echo $d>>sar.log echo "eth0 input:`expr $input \* 8 \* 1000`bps">>sar.log echo "eth0 output:`expr $output \* 8 \* 1000`bps">>sar.log echo "####################">>sar.log done
#!/bin/bash touch networkflow.log while : ;do data +%F' '%H:%m>>networkflow.log sar -n DEV 1 59 |awk '/Average/&&/eth*/{print $2" input:" $5*8*1024"bps";print$2" output:" $6*8*1024"bps"}'>>networkflow.log echo "################">>networkflow.log done
相关文章推荐
- Linux socket 初步
- android wifi 无线调试
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户