OS:ubuntu 8.04.1
mysql 5.0
1、腳本mysqlbak.sh
#!/bin/sh
DATE=`date +%Y-%m-%d`
olddate=`date +%Y-%m-%d -d "-2 days"`
mkdir /data/mysqlback/$DATE
rm -rf /data/mysqlback/$olddate
mysqldump --add-drop-table test | gzip > /data/mysqlback/$DATE/test_$DATE.sql.gz
#FTP 自動上傳
cd /data/mysqlback/$DATE
ftp -i -n -v <<EOF
open 127.0.0.1
user user_name user_passwd
binary
mkdir $DATE
rmdir $olddate 删除2天前的資料庫目錄以及資料檔案
cd $DATE
mput *
EOF
注:mkdir /data/mysqlback/$DATE 以目前日期建立目錄
rm -rf /data/mysqlback/$olddate 删除前二天的目錄和檔案
該腳本能自動備份mysql test資料庫,自動删除前二天的mysql test備份資料庫。隻保留最近二天的mysql資料庫。
2、配置計劃任務crontab (每天淩晨05:00開始備份)
root@db14:~# crontab -l
# m h dom mon dow command
0 5 * * * /data/mysqlback/mysqlbak.sh > /tmp/baksql.log 2>&1
修改mysql 使用者密碼
mysql> update user set password=password(’新密碼’) where user=’root’;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> FLUSH PRIVILEGES;