7 个日常实用的 Shell 拿来就用脚本实例!

本文转载自:波哥IT的人生

今天来给大家分享 7 个日常实用脚本;

1、list_sys_status.sh

显示系统使用的以下信息:

主机名、IP地址、子网掩码、网关、DNS服务器IP地址信息

#!/bin/bashIP=`ifconfig eth0 | head -2 | tail -1 | awk '{print $2}' | awk -F':' '{print $2}'`ZW=` ifconfig eth0 | head -2 | tail -1 | awk '{print $3}' | awk -F':' '{print $2}'`GW=`route -n | tail -1 | awk '{print $2}'`HN=`hostname`DNS=`head -1 /etc/resolv.conf | awk '{print $2}'`echo '此机IP地址是' $IPecho '此机子网掩码是' $ZWecho '此机网关是' $GWecho '此机主机名是' $HNecho '此机DNS是' $DNS

2、mysqlbak.sh备份数据库目录脚本

#!/bin/bash
DAY=`date  %Y%m%d`
SIZE=`du -sh /var/lib/mysql`
echo 'Date: $DAY' >> /tmp/dbinfo.txt
echo 'Data Size: $SIZE' >> /tmp/dbinfo.txt
cd /opt/dbbak &> /dev/null || mkdir /opt/dbbak
tar zcf /opt/dbbak/mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt &> /dev/null
rm -f /tmp/dbinfo.txt

crontab-e
55 23 */3 * * /opt/dbbak/dbbak.sh

3、每周日半夜23点半,对数据库服务器上的webdb库做完整备份

每备份文件保存到系统的/mysqlbak目录里

用系统日期做备份文件名 webdb-YYYY-mm-dd.sql

每次完整备份后都生成新的binlog日志

把当前所有的binlog日志备份到/mysqlbinlog目录下

#mkdir /mysqlbak #mkdir /mysqlbinlog#service mysqld startcd /shell#vi webdb.sh#!/bin/bashday=`date  %F`mysqldump -hlocalhost -uroot -p123 webdb > /mysqlbak/webdb-${day}.sqlmysql -hlocalhost -uroot -p -e 'flush logs'tar zcf /mysqlbinlog.tar.gz /var/lib/mysql/mysqld-bin.0*#chmod  x webdb.sh #crontab -e30 23 * * 7 /shell/webdb.sh

4、very.ser.sh(检查任意一个服务的运行状态)

只检查服务vsftpd httpd sshd crond、mysql中任意一个服务的状态

如果不是这5个中的服务,就提示用户能够检查的服务名并退出脚本

如果服务是运行着的就输出 '服务名 is running'

如果服务没有运行就启动服务

方法1:使用read写脚本

#!/bin/bash
read -p '请输入你的服务名:' service
if [ $service != 'crond' -a $service != 'httpd' -a $service != 'sshd' -a $service != 'mysqld' -a $service != 'vsftpd' ];then
echo '只能够检查'vsftpd,httpd,crond,mysqld,sshd'
exit 5
fi
service $service status &> /dev/null

if [ $? -eq 0 ];thhen
echo '服务在线'
else
service $service start
fi

方法2:使用位置变量来写脚本

if [ -z $1 ];thenecho 'You mast specify a servername!'echo 'Usage: `basename$0` servername'exit 2fiif [ $1 == 'crond' ] || [ $1 == 'mysql' ] || [ $1 == 'sshd' ] || [ $1 == 'httpd' ] || [ $1 == 'vsftpd' ];thenservice $1 status &> /dev/nullif [ $? -eq 0 ];thenecho '$1 is running'elseservice $1 startfielseecho 'Usage:`basename $0` server name'echo 'But only check for vsftpd httpd sshd crond mysqld' && exit2fi

5、pc_noline.sh

输出192.168.1.0/24网段内在线主机的ip地址

统计不在线主机的台数,并把不在线主机的ip地址和不在线时的时间保存到/tmp/ip.txt文件里

#!/bin/bash
ip=192.168.1.
j=0
for i in `seq 10 12`
do
ping -c 3 $ip$i &> /dev/null
if [ $? -eq 0 ];then
echo 在线的主机有:$ip$i
else
let j
echo $ip$i >> /tmp/ip.txt
date >> /tmp/ip.txt
fi
done
echo 不在线的主机台数有 $j

6、一个简单的网站论坛测试脚本

用交互式的输入方法实现自动登录论坛数据库,修改用户密码

[root@test1 scripts]# vim input.sh

#!/bin/bash

End=ucenter_membersMYsql=/home/lnmp/mysql/bin/mysql

read -p 'Enter a website directory : ' webdirWebPath=/home/WebSer/$webdir/configecho $WebPath

read -p 'Enter dbuser name : ' dbuserecho $dbuser

read -sp 'Enter dbuser password : ' dbpass

read -p 'Enter db name : ' dbnameecho $dbname

read -p 'Enter db tablepre : ' dbtablepreecho $dbtablepre

Globalphp=`grep 'tablepre*' $WebPath/config_global.php |cut -d ''' -f8`Ucenterphp=`grep 'UC_DBTABLEPRE*' $WebPath/config_ucenter.php |cut -d '.' -f2 | awk -F ''' '{print $1}'`

if [ $dbtablepre == $Globalphp ] && [ $dbtablepre == $Ucenterphp ];then

     Start=$dbtablepre     Pre=`echo $Start$End`

     read -p 'Enter you name : ' userset     echo $userset

     Result=`$MYsql -u$dbuser -p$dbpass $dbname -e 'select username from $Pre where username='$userset'\G'|cut -d ' ' -f2|tail -1`     echo $Result     if [ $userset == $Result ];then           read -p 'Enter your password : ' userpass           passnew=`echo -n $userpass|openssl md5|cut -d ' ' -f2`

           $MYsql -u$dbuser -p$dbpass $dbname -e 'update $Pre set password='$passnew' where username='$userset';'           $MYsql -u$dbuser -p$dbpass $dbname -e 'flush privileges;'     else           echo '$userset is not right user!'           exit 1     fielse     exit 2fi

7、slave_status.sh(检查mysql主从从结构中从数据库服务器的状态)

1)本机的数据库服务是否正在运行

2)能否与主数据库服务器正常通信

3)能否使用授权用户连接数据库服务器

4)本机的slave_IO进程是否处于YES状态

本机的slave_SQL进程是否处于YES状态

[root@test1 scripts]# vim test.sh

#!/bin/bash
netstat -tulnp | grep :3306 > /dev/null
if [ $? -eq 0 ];then
echo '服务正在运行' 
else
service mysqld start
fi
ping -c 3 192.168.1.100 &> /dev/null
if [ $? -eq 0 ];then
echo '网络连接正常' 
else
echo '网络连接失败'
fi
mysql -h192.168.1.100 -uroot -p123456 &> /dev/null
if [ $? -eq 0 ];then
echo '数据库连接成功' 
else
echo '数据库连接失败'
fi
IO= mysql -uroot -p123 -e 'show slave status\G' | grep Slave_IO_Running | awk '{print $2}' > /dev/null
SQL= mysql -uroot -p123 -e 'show slave status\G' | grep Slave_SQL_Running | awk '{print $2}' /dev/null
if [ IO==Yes ] && [ SQL==Yes ];then
echo “IO and SQL 连接成功”
else
echo 'IO线程和SQL线程连接失败'
fi

以上就是今天分享的全部内容;

对了,如果大家有 Shell 脚本的需求案例,也欢迎在这篇文章进行留言,案例多的话下次就整理个脚本合集给大家分享。

(0)

相关推荐

  • Docker registry 私有仓库镜像查询、删除、上传、下载 shell

    #Docker官方私有仓库registry#官方只提供了API接口,不方便使用,就写了个shell#docker-registry安装配置http://www.cnblogs.com/elvi/p/8 ...

  • Bash脚本编程学习笔记05:用户交互与脚本调试

    用户交互 在<学习笔记04>中我们有提到位置参数,位置参数是用来向脚本传递参数的一种方式.还有一种方式,是read命令. [root@c7-server ~]# read namealon ...

  • Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息

    Linux 中有很多可以查看系统信息如处理器信息.生产商名字.序列号等的命令.你可能需要执行多个命令来收集这些信息.同时,记住所有的命令和他们的选项也是有难度.-- Magesh Maruthamut ...

  • 23 个非常实用的 Shell 拿来就用脚本实例

    转载:博智互联 shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式.区区几行代码,就可以让计算机接近按照你的意图行事. 为大家整理了23个 ...

  • 干货:23 个非常实用的 Shell 拿来就用脚本实例

    shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式.区区几行代码,就可以让计算机接近按照你的意图行事. 为大家整理了23个实例,通过23个 ...

  • 看完不后悔!日常实用口语大全

    在俄罗斯学习一定要开口说俄语,但是有些知识书上也没有教过,很多时候我们并不知道自己说的句子够不够准确,礼不礼貌,猫老板在俄罗斯上学的时候,就是因为不敢说,不会说吃了不少亏!所以立志想好好学会口语!今天 ...

  • 梦幻西游:日常实用小技巧分享,活到老学到老,现在知道还不算迟

    在梦幻西游任务玩法当中,游戏玩家了快速完成任务获取奖励而想出了各种技巧套路,基本上每一种游戏玩法都技巧可言,只是大多数人没有发现而已.特别是那些热门的日常任务,抓鬼.副本以及帮派迷宫等这些任务都有提高 ...

  • 编辑推荐 | 日常实用口语

    在俄罗斯学习一定要开口说俄语,但是有些知识书上也没有教过,很多时候我们并不知道自己说的句子够不够准确,礼不礼貌,猫老板在俄罗斯上学的时候,就是因为不敢说,不会说吃了不少亏!所以立志想好好学会口语!今天 ...

  • 秋季穿搭没头绪?看看这些温柔优雅的气质穿搭,日常实用还百搭

    人靠衣装马靠鞍,大方得体的衣着打扮总是能够让我们更加自信一些,给他人留下的第一印象也会更好一些,而且穿衣打扮也不仅仅只是为了好看,还需要根据季节,天气等因素,发挥一定的实际效果,保暖御寒,防风等等,早 ...

  • 秋季穿“风衣”不要乱搭,这些穿搭日常实用又显气质,美得高级

    为了给小姐姐介绍几件比较好看的风衣,我特意找了以下几种风衣的搭配,在大同小异中,小姐姐们可以寻找一下搭配技巧,让自己不必置新的衣服就可以有更好的搭配方向,当然该添置新衣时,还是不能缺少的,毕竟购物可是 ...

  • 教师日常实用的18个表格(终结版)

    捋顺班级各种事务,将各种事务量化.表格化,是最大的捷径,也是最高效的办公方式. 1.班级课程表 第一时间将新学期的课程内容呈现给学生,有助于学生按照新的作息时间和课程准备每一天的课程,也便于学生进行课 ...

  • 教师日常实用的18个表格

    捋顺班级各种事务,将各种事务量化.表格化,是最大的捷径,也是最高效的办公方式. 1.班级课程表 第一时间将新学期的课程内容呈现给学生,有助于学生按照新的作息时间和课程准备每一天的课程,也便于学生进行课 ...