日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


作者:迷神

在企業的Liunx運維中,經常需要應用到各種shell腳本,比如MySQL數據庫備份Shell腳本和Mysql主從同步監控Shell腳本等等常用企業運維shell腳本。。下面分享兩例,希望對大家有幫助

Mysql數據庫備份腳本(完整備份+異地備份)

Mysql數據庫備份其實方法有很多,一般非超大量業務,可以使用 mysqldump 。Mysql數據庫備份可以采用在MYSQL從庫上執行全量備份+增量備份方式。注意,盡力選擇服務器使用少的凌晨的時候進行備份,如果有主從的話,需要在從庫中備份避免Mysql主庫備份的時候鎖表造成業務影響。

#!/bin/bash  
set -e                         #錯誤時,便停止執行腳本
#數據庫名,可以添加多個
DATABASES=(
            "data01"
            "data02"
)
USER="root"
PASSword="123456"

MAIL="123456@163.com"
BACKUP_DIR=/data/backup
LOGFILE=/data/backup/data_backup.log
DATE=`date +%Y%m%d_%H%M`

cd $BACKUP_DIR
#寫入日記文件   
echo "--------------------" >> $LOGFILE
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE
echo "-------------------" >> $LOGFILE

for DATABASE in ${DATABASES};do
  /usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD --events  -R --opt  $DATABASE |gzip >${BACKUP_DIR}/${DATABASE}_${DATE}.sql.gz
  if [ $? == 0 ];then
    echo "$DATE--$DATABASE is backup succeed" >> $LOGFILE
  else
    echo "Database Backup Fail!" >> $LOGFILE
  fi
done
#全部成功就同步到異地備份服務器
if [ $? == 0 ];then
  /usr/bin/rsync -zrtopg   --delete  /data/backup/* root@192.168.10.10:/data/backup/  >/dev/null 2>&1
else
  echo "Database Backup Fail!" >> $LOGFILE
  #備份失敗后向管理者發送郵件提醒
  mail -s "database Daily Backup Fail!" $MAIL
fi

#刪除30天以上的備份文件  
find $BACKUP_DIR  -type f -mtime +30 -name "*.gz" -exec rm -f {} ;

這里使用的是 rsync 進行同步,但是實際生產過程中,大家也可以使用 scp 或者 ftp之類的都可以的。根據實際需要進行處理

Mysql主從同步監控郵件報警腳本

監控MySQL主從同步是否正常運行。主要是看Slave機器的IO和SQL狀態都必須為YES,缺一不可,這里用到了多重條件判斷。加入到計劃任務,可以10分鐘一次,根據實際需要,如果有一個不是YES,那就可以通過郵件通知,實際的,大家也可以通過其他的方式,比如微信,短信等等。

#!/bin/bash
#查找mysql端口是否存在。
MYSQLPORT='netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}''
MYSQLIP='ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}''
#mysql登陸查看從庫狀態
STATUS=$(/usr/local/mysql/bin/mysql -u dbuser -dbpwd123 -S /tmp/mysql.sock -e "show slave status\G" | grep -i "running")
IO_env='echo $STATUS | grep IO | awk ' {print $2}''
SQL_env='echo $STATUS | grep SQL | awk '{print $2}''

if [ "$MYSQLPORT" == "3306" ]
then
 echo "mysql is running"
else
 mail -s "warn!server: $MYSQLIP mysql is down" magedu@gmail.com
fi

if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
then
 echo "Slave is running!"
else
 echo "####### $date #########">> /data/log/check_mysql_slave.log
 echo "Slave is not running!" >> /data/log/check_mysql_slave.log
 mail -s "warn! $MySQLIP_replicate_error" magedu@gmail.com << /data/log/check_mysql_slave.log
fi

好了,就這么多,有問題歡迎留言進行交流哦。

分享到:
標簽:Mysql
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定