您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)常用的Sheel腳本有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
顯示系統(tǒng)使用的以下信息:
主機(jī)名、IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS服務(wù)器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 '此機(jī)IP地址是' $IPecho '此機(jī)子網(wǎng)掩碼是' $ZWecho '此機(jī)網(wǎng)關(guān)是' $GWecho '此機(jī)主機(jī)名是' $HNecho '此機(jī)DNS是' $DNS
#!/bin/bashDAY=`date +%Y%m%d` SIZE=`du -sh /var/lib/mysql`echo "Date: $DAY" >> /tmp/dbinfo.txtecho "Data Size: $SIZE" >> /tmp/dbinfo.txtcd /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-e55 23 */3 * * /opt/dbbak/dbbak.sh
每備份文件保存到系統(tǒng)的/mysqlbak目錄里
用系統(tǒng)日期做備份文件名 webdb-YYYY-mm-dd.sql
每次完整備份后都生成新的binlog日志
把當(dāng)前所有的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}.sql mysql -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
只檢查服務(wù)vsftpd httpd sshd crond、mysql中任意一個(gè)服務(wù)的狀態(tài)
如果不是這5個(gè)中的服務(wù),就提示用戶能夠檢查的服務(wù)名并退出腳本
如果服務(wù)是運(yùn)行著的就輸出 “服務(wù)名 is running”
如果服務(wù)沒有運(yùn)行就啟動(dòng)服務(wù)
#!/bin/bashread -p "請輸入你的服務(wù)名:" serviceif [ $service != 'crond' -a $service != 'httpd' -a $service != 'sshd' -a $service != 'mysqld' -a $service != 'vsftpd' ];thenecho "只能夠檢查'vsftpd,httpd,crond,mysqld,sshd"exit 5fiservice $service status &> /dev/nullif [ $? -eq 0 ];thhenecho "服務(wù)在線"elseservice $service startfi
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
輸出192.168.1.0/24網(wǎng)段內(nèi)在線主機(jī)的ip地址
統(tǒng)計(jì)不在線主機(jī)的臺(tái)數(shù),并把不在線主機(jī)的ip地址和不在線時(shí)的時(shí)間保存到/tmp/ip.txt文件里
#!/bin/baship=192.168.1. j=0for i in `seq 10 12`doping -c 3 $ip$i &> /dev/nullif [ $? -eq 0 ];thenecho 在線的主機(jī)有:$ip$ielselet j++echo $ip$i >> /tmp/ip.txt date >> /tmp/ip.txtfidoneecho 不在線的主機(jī)臺(tái)數(shù)有 $j
用交互式的輸入方法實(shí)現(xiàn)自動(dòng)登錄論壇數(shù)據(jù)庫,修改用戶密碼
[root@test1 scripts]# vim input.sh#!/bin/bashEnd=ucenter_members MYsql=/home/lnmp/mysql/bin/mysqlread -p "Enter a website directory : " webdir WebPath=/home/WebSer/$webdir/configecho $WebPathread -p "Enter dbuser name : " dbuserecho $dbuserread -sp "Enter dbuser password : " dbpassread -p "Enter db name : " dbnameecho $dbnameread -p "Enter db tablepre : " dbtablepreecho $dbtablepreGlobalphp=`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
1)本機(jī)的數(shù)據(jù)庫服務(wù)是否正在運(yùn)行
2)能否與主數(shù)據(jù)庫服務(wù)器正常通信
3)能否使用授權(quán)用戶連接數(shù)據(jù)庫服務(wù)器
4)本機(jī)的slave_IO進(jìn)程是否處于YES狀態(tài)
本機(jī)的slave_SQL進(jìn)程是否處于YES狀態(tài)
[root@test1 scripts]# vim test.sh#!/bin/bashnetstat -tulnp | grep :3306 > /dev/nullif [ $? -eq 0 ];thenecho "服務(wù)正在運(yùn)行"elseservice mysqld startfiping -c 3 192.168.1.100 &> /dev/nullif [ $? -eq 0 ];thenecho "網(wǎng)絡(luò)連接正常"elseecho "網(wǎng)絡(luò)連接失敗"fimysql -h292.168.1.100 -uroot -p123456 &> /dev/nullif [ $? -eq 0 ];thenecho "數(shù)據(jù)庫連接成功"elseecho "數(shù)據(jù)庫連接失敗"fiIO= 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/nullif [ IO==Yes ] && [ SQL==Yes ];thenecho “IO and SQL 連接成功”elseecho "IO線程和SQL線程連接失敗"fi
感謝各位的閱讀!關(guān)于“常用的Sheel腳本有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。