Mysql--Linux Mysql定期自動備份
本文是針對mysql資料庫的全量備份,包括資料和結構。儲存最新的5次備份。
一:編寫腳步檔案mysql_backup.sh
#!/bin/sh
# mysql_backup.sh: backup mysql databases and keep newest 5 days backup.
db_user="root"
db_passwd="imsuser"
db_host="localhost"
db_name="ims"
# the directory for story your backup file.
backup_dir="/backup/mysqldata"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%d-%m-%Y")"
# mysql, mysqldump and some other bin's path
MYSQL="/usr/local/mysql/bin/mysql"
MYSQLDUMP="/usr/local/mysql/bin/mysqldump"
MKDIR="/bin/mkdir"
RM="/bin/rm"
MV="/bin/mv"
GZIP="/bin/gzip"
# check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0
# the directory for story the newest backup
test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"
# get all databases
#all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"
#for db in $all_db
#do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db_name | $GZIP -9 > "$backup_dir/backup.0/$time.$db_name.gz"
#done
# delete the oldest backup
test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"
# rotate backup directory
for int in 4 3 2 1 0
do
if(test -d "$backup_dir"/backup."$int")
then
next_int=`expr $int + 1`
$MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
fi
done
exit 0;
二:賦予腳步可執行許可權
chmod +x mysql_backup.sh
三:新增定時執行計劃
vi /etc/crontab
新增:00 5 * * * root /backup/mysql_backup.sh 每日5點鐘備份一次資料庫
計劃立即生效:service crond restart
四:補充
linux 開機自動啟動
cd /usr/bin
ln -s -f /usr/local/jdk1.7.0_10/bin/java
ln -s -f /usr/local/jdk1.7.0_10/bin/javac
vi /etc/rc.local
/etc/init.d/mysqld start
export JAVA_HOME=/usr/local/jdk1.7.0_10
/usr/local/apache-tomcat-6.0.37/bin/startup.sh start
export JAVA_HOME=/usr/local/jdk1.7.0_10
nohup sh /home/startTransfer.sh &
一:編寫腳步檔案mysql_backup.sh
#!/bin/sh
# mysql_backup.sh: backup mysql databases and keep newest 5 days backup.
db_user="root"
db_passwd="imsuser"
db_host="localhost"
db_name="ims"
# the directory for story your backup file.
backup_dir="/backup/mysqldata"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%d-%m-%Y")"
# mysql, mysqldump and some other bin's path
MYSQL="/usr/local/mysql/bin/mysql"
MYSQLDUMP="/usr/local/mysql/bin/mysqldump"
MKDIR="/bin/mkdir"
RM="/bin/rm"
MV="/bin/mv"
GZIP="/bin/gzip"
# check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0
# the directory for story the newest backup
test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"
# get all databases
#all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"
#for db in $all_db
#do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db_name | $GZIP -9 > "$backup_dir/backup.0/$time.$db_name.gz"
#done
# delete the oldest backup
test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"
# rotate backup directory
for int in 4 3 2 1 0
do
if(test -d "$backup_dir"/backup."$int")
then
next_int=`expr $int + 1`
$MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
fi
done
exit 0;
二:賦予腳步可執行許可權
chmod +x mysql_backup.sh
三:新增定時執行計劃
vi /etc/crontab
新增:00 5 * * * root /backup/mysql_backup.sh 每日5點鐘備份一次資料庫
計劃立即生效:service crond restart
四:補充
linux 開機自動啟動
cd /usr/bin
ln -s -f /usr/local/jdk1.7.0_10/bin/java
ln -s -f /usr/local/jdk1.7.0_10/bin/javac
vi /etc/rc.local
/etc/init.d/mysqld start
export JAVA_HOME=/usr/local/jdk1.7.0_10
/usr/local/apache-tomcat-6.0.37/bin/startup.sh start
export JAVA_HOME=/usr/local/jdk1.7.0_10
nohup sh /home/startTransfer.sh &
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-765845/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server定期自動備份SQLServer
- shell中date使用總結-基於自動定期備份mysql實踐MySql
- Linux自動備份MySQLLinuxMySql
- MySQL自動備份指令碼MySql指令碼
- MySQL定期自動刪除表MySql
- Mysql資料庫自動備份MySql資料庫
- MySQL自動備份策略的方案MySql
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- Linux下Mysql定時自動備份LinuxMySql
- MySQL 自動備份併傳送到郵箱MySql
- MySQL儲存安全(TDE加密、自動備份)MySql加密
- 自動expftp備份FTP
- windows/linux自動備份mysql並刪除7天前的備份WindowsLinuxMySql
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- 自動備份指令碼指令碼
- 自動備份任務
- xtrabackup備份mysql以及建立自動定時任務MySql
- MYSQL自動備份策略的選擇與實踐MySql
- windows下exp邏輯備份並且定期維護備份Windows
- CentOS7.X 掛載磁碟 與Mysql 自動備份CentOSMySql
- MySQL自動備份指令碼及異地定時FTPMySql指令碼FTP
- 小米路由器怎麼定期備份硬碟資料?小米路由器定期備份硬碟資料教程路由器硬碟
- 8種手動和自動備份MySQL資料庫的方法MySql資料庫
- Windows定期自動關機Windows
- 資料庫自動備份資料庫
- Ms-SqlServer自動備份SQLServer
- mysqldump壓縮備份匯出匯入(含定期備份shell指令碼)MySql指令碼
- GitLab的自動備份、清理備份與恢復Gitlab
- 自動定時備份 mysql 資料庫 的 shell 指令碼MySql資料庫指令碼
- 讓資料庫更安全,Mysql自動備份指令碼(轉)資料庫MySql指令碼
- 使用 restic 和 systemd 自動備份REST
- RMAN自動備份任務新增
- oracle自動冷備份指令碼Oracle指令碼
- expdp備份+FTP自動上傳FTP
- ORACLE自動備份shell指令碼Oracle指令碼
- rman 自動備份指令碼-windows指令碼Windows
- 自動備份Oracle資料庫Oracle資料庫
- exp自動備份on linux and on windowsLinuxWindows