成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不看后悔的Linux生產服務器Shell腳本分享

原創
系統 Linux
作為一名Linux/unix系統管理員,我經常遇到人問這個問題:shell能做什么?shell主要用于數據庫備份(SVN備份)、計劃任務(crontab)、服務狀態監控、FTP遠程備份等。對于這些任務,shell的強大是大家都公認的,這也是每一個Linux/unix系統管理員的基本之一。

【51CTO獨家特稿】作為一名Linux/unix系統管理員,我經常遇到人問這個問題:shell能做什么?PHP這么強大,為什么不用PHP來完成工作呢?其實相對于PHP這些開發語言而言,shell主要用于數據庫備份(SVN備份)、計劃任務(crontab)、服務狀態監控、FTP遠程備份等。對于這些任務,shell的強大是大家都公認的,這也是每一個Linux/unix系統管理員的基本之一。現在在Windows 2008里也出現了PowerShell的身影,十分不錯。

下面我會用我的線上服務器的shell腳本舉例來讓大家了解shell及其用途。

【目錄】

  1. MySQL的熱備份腳本
  2. 用FTP同步服務器
  3. Keepalived的監控切換腳本
  4. SVN的版本庫的批量備份
  5. 自動監控ADSL并重拔號
  6. Linux批量生成生成帳戶(10月11日更新
  7. 測試局域網內主機是否alive(10月11日更新

點擊下方的子頁面標題,進入對應的shell腳本頁面進行閱讀。

#p#

一、MySQL的熱備份腳本

這是MySQL的備份方式之一,腳本如下:

#!/bin/bash
PATH=/usr/local/sbin:/usr/bin:/bin
 
# The Directory of Backup
BACKDIR=/usr/mysql_backup
# The Password of MySQL
ROOTPASS=password
 
# Remake the Directory of Backup
rm -rf $BACKDIR
mkdir -p $BACKDIR
 
# Get the Name of Database
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`
# 偷瞄了下我同事寫腳本的方式,發現他直接將DBLIST一個個手動敲上去了
# 數據庫少的情況是可以的,如果數據庫是成百以上呢,呵呵
 
# Backup with Database
for dbname in $DBLIST
do
mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done

許多系統管理員喜歡用mysqldump --opt來備份數據庫,由于比較簡單,我這里就不重復了。

#p#

二、用FTP同步服務器

許多系統管理員喜歡用rsync同步二臺服務器之間的數據,但我們更喜歡用FTP來實現,其好處是:

  1. FTP比rsync更能耗盡帶寬,所以它更適合同步數據庫(尤其是幾百G的數據)
  2. 配置起來相當方便,尤其是用pureftpd
  3. rsync的優勢是可以快速海量同步小文件,比如二級目錄或三級目錄下的批量圖片等

基本上FTP和rsync同步各有優勢,看系統管理員的取舍了。以下是本部分要介紹的FTP同步的shell腳本方式:

FTPOLDDATE=`date +%Y-%m-%d -d '-60 days'`
#在FTP定義60天間的日期變量,是為了在FTP端保存60天的數據,逾期刪除。
 
HOST=192.168.4.199
FTP_USERNAME=db
FTP_PASSWORD=password
 
cd ${BACKDIR}/${DATE}
 
ftp -i -n -v << !
open ${HOST}
user ${FTP_USERNAME} ${FTP_PASSWORD}
bin
cd ${FTPOLDDATE}
mdelete *
cd ..
rmdir ${FTPOLDDATE}
mkdir ${DATE}
cd ${DATE}
mput *
bye
!

#p#

三、Keepalived的監控切換腳本

實現功能如下:針對Nginx+Keepalived,編寫nginx監控腳本nginx_pid.sh,放置在后臺一直監控nginx進程;如進程消失,嘗試重啟nginx,如是失敗則立即停掉本機的keepalived服務,讓另一臺負載均衡器接手。此腳本詳細內容如下:

#!/bin/bash 
while :
do
nginxpid=`ps -C nginx --no-header | wc -l`
if [ $nginxpid -eq 0 ];then
ulimit -SHn 65535 #在并發數很大的情況下,連接數過小會導致linux狂報錯,所以直接在nginx啟動前定義
/usr/local/nginx/sbin/nginx
sleep 5
nginxpid=`ps -C nginx --no-header | wc -l`
if [ $nginxpid -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
sleep 5 
done

相關說明可參考我發在組網頻道的《企業級WEB的負載均衡高可用之LVS+Keepalived》一文。

#p#

四、SVN的版本庫的批量備份

實現其功能蠻簡單,主要是用了svnadmin hotcopy,這東東功能很強大,我經常用于svn的版本庫的轉移(順便說一句,上次不小心誤操作將庫刪光了,很輕松的用svnadmin hotcopy將其恢復過來了)。

for PROJECT in test project svntest
do
  cd ${SVNDIR}
  ${SVNADMIN} hotcopy ${PROJECT} ${BACKDIR}/${DATE}/${PROJECT} --clean-logs
 
  cd ${BACKDIR}/${DATE}
  tar zcvf ${PROJECT}_svn_${DATE}.tar.gz ${PROJECT} > /dev/null
  rm -rf ${PROJECT}
 
  echo "Repository: ${PROJECT} backup done into ${BACKDIR}/${DATE}/ Successful!"
 >> ${LogFile}
  /bin/sleep 2
done

#p#

五、自動監控ADSL并重拔號的shell腳本

公司辦公室的adsl愛掉線,一掉的話網關的gateway就沒了。因此編寫了下列腳本:

#!/bin/bash
while :
do
if route | tail -l | grep "0.0.0.0"
then
&>/dev/null
else
adsl-stop
adsl-start
fi
sleep 10
done

執行腳本方法: nuhup sh route.sh &

注意前面要用上nohup,這樣避免root用戶logout時此腳本也退出生效的問題。

#p#

六、Linux批量生成生成帳戶腳本

此腳本應用于生產環境下生成帳戶,也可生成成百上千個密碼相同的帳戶。腳本代碼如下:

#!/bin/bash
for name in tom jerry joe jane
do
      useradd $name
      echo redhat | passwd --stdin $name
done

自己使用的時候,用自己需要的帳戶名列表替換掉這個代碼范例里的tom jerry joe jane等字段即可。密碼都是redhat,可以讓用戶之后自己更改。

#p#

七、測試局域網內主機是否alive的小腳本

此腳本用于檢查192.168.1.100到192.168.1.200之間的主機是否alive。腳本如下:

#!/bin/bash
#Checks to see if hosts 192.168.1.100-192.168.1.200 are alive
for n in {100..200}; do
         host=192.168.1.$n
         ping -c2 $host &>/dev/null
         if [ $? = 0 ]; then
                      echo "$host is UP"
         else
                      echo "$host is DOWN"
         fi
done

※溫馨小提示:注意$?與=之間必須空格。

小結

其它一些自動監控MySQL狀態等腳本我感覺比較簡單,適合于新手學習,有興趣的可去撫琴煮酒的百度博客參觀學習。如果大家感興趣,以后也會分批整理出來跟大家分享。希望大家看了諸如此類的shell腳本,能從中學到對自己有所幫助的知識。

【編輯推薦】

  1. 天外飛仙級別的Linux Shell命令
  2. 天外飛仙級別的Linux Shell命令(第二彈)
  3. PowerShell與SSH/bash的對比點評
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2014-09-02 10:55:25

iOS開發視圖切換

2017-10-11 13:06:16

云計算云成本服務器

2017-08-15 10:53:34

網站設計UIUE

2020-04-20 09:01:50

程序員創業 互聯網

2020-12-16 07:42:03

JS基礎代碼

2023-11-06 18:48:31

LinuxShell

2019-05-27 22:59:39

面試SQL語句數據庫

2019-08-23 06:22:47

LinuxShell監控腳本

2011-07-06 14:16:25

Linux服務器Shell腳本

2018-08-15 08:45:38

2020-02-24 22:50:15

Shell腳本MySQL

2011-09-02 10:29:30

腳本Linuxperl

2011-10-09 13:16:50

LNMP生產服務器自動安裝

2019-02-18 15:15:41

人工智能AI開發者

2011-12-05 10:37:53

Linux服務器Shell腳本

2010-06-02 13:29:55

2018-07-13 10:18:28

Linux服務器經驗

2010-05-31 14:56:11

2013-12-26 10:28:11

云服務器物理服務器

2013-12-27 09:49:51

云服務器物理服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠色狠狠色综合日日92 | 激情91| 日韩图区 | 一区日韩| 精久久久久 | 神马影院一区二区三区 | 女同久久另类99精品国产 | 综合久久久 | 黑人久久久 | 日本一区二区不卡视频 | 成人国内精品久久久久一区 | 久久成人高清视频 | 中文字幕国产一区 | 欧美aⅴ| 欧美日韩久久久久 | 亚欧性视频 | 亚洲一区二区在线电影 | 一级少妇女片 | 国产成人精品一区二区 | 久久av一区二区 | 欧美日韩在线观看一区 | 久久精品国产一区 | 亚洲福利一区 | 天天操天天射天天 | 日日碰碰| 久久99精品久久久久久 | 欧美日韩在线免费 | 色综合视频在线 | 久久蜜桃精品 | 九九av| 夜夜艹天天干 | 中文字幕亚洲精品 | 精品国产乱码久久久久久蜜臀 | 99国产精品99久久久久久 | 日日摸日日爽 | 亚洲人人 | 欧美日韩久久 | 欧美福利三区 | 日韩av中文 | 偷拍自拍网 | 亚洲国产一区二区视频 |