標籤:
一個用mysqldump做邏輯備份的小指令碼
用於小資料量的備份,全庫,按日期,按庫,按表,進行分類
# date -s "2015/01/01" && bash mybackup.sh
#!/bin/bash# 使用mysqldump進行邏輯備份# 目錄結構/backup/日期 # 每隔7天刪除舊的備份目錄db_backup_root="/backup"today=`date +%Y%m%d`old_backup_dir=`date -d "-7 day" +%Y%m%d`db_user="root"db_passwd="geekoo"sock=`mysql -u$db_user -p$db_passwd -e "show variables like ‘%sock%‘" | grep -v Variable_name | awk {‘print $2‘}`mysql_client=`which mysql`mysqldump_client=`which mysqldump`xmysql="$mysql_client -S $sock -u$db_user -p$db_passwd"xmysqldump="$mysqldump_client -S $sock -u$db_user -p$db_passwd"if [ -d $old_backup_dir ]; thenecho "delete old backup $old_backup_dir"rm -rf $old_backup_dirfiif [ ! -d $today ]; thenmkdir -p $db_backup_root/$todayfi$xmysql -e "show databases;" | grep -vE "(Database|_schema)" > $db_backup_root/$today/db_listwhile read dbnamedo echo $dbnameif [ ! -d $db_backup_root/$today/$dbname ]; thenmkdir -p $db_backup_root/$today/$dbnamefi$xmysql -e "use $dbname; show tables;" | grep -v Tables_in > $db_backup_root/$today/$dbname/table_listwhile read tablenamedoecho $tablename$xmysqldump $dbname $tablename -R --events --triggers > $db_backup_root/$today/$dbname/$tablename.sqldone < $db_backup_root/$today/$dbname/table_listdone < $db_backup_root/$today/db_list
MySQL邏輯備份mysqldump