å¤ä»½mysql
注ï¼é¨å为ç½ä¸æ¾å°ï¼åé¢å 以修æ¹ã
åå»ºèæ¬
å½ä»¤ï¼vi mysql_backup.sh
å 容å¦ä¸ï¼
#!/bin/bash
# 设置mysqlçç»å½ç¨æ·ååå¯ç (æ ¹æ®å®é
æ
åµå¡«å)
mysql_user="root"
mysql_password="123456"
mysql_host="localhost"
mysql_port="3306"
mysql_charset="utf8mb4"
# å¤ä»½æä»¶åæ¾å°å(æ ¹æ®å®é
æ
åµå¡«å)
backup_location=/usr/local
# æ¯å¦å é¤è¿ææ°æ®
expire_backup_delete="ON"
expire_days=7
backup_time=`date +%Y%m%d%H%M`
backup_dir=$backup_location
welcome_msg="Welcome to use MySQL backup tools!"
# å¤ä»½æå®æ°æ®åºä¸æ°æ®(æ¤å¤æè¦å¤ä»½çæ°æ®åºä¸ºlongxing)
docker exec -i mymysql mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -B longxing > $backup_dir/$backup_time.sql
# å é¤è¿ææ°æ®
if [ "$expire_backup_delete" == "ON" -a "$backup_location" != "" ];then
`find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`
echo "Expired backup data delete complete!"
fi
**注 å¨ä¸é¢æ§è¡å½ä»¤æ¶ä¸å®ä¸è½ä¸ºdocker exec -it ä¸ç¶æ§è¡ä»»å¡æ¶ä¼åºç°ï¼the input device is not a TTYé误 **
æ§è¡ä»¥ä¸å½ä»¤:
chmod u+x *.sh
åå»ºå®æ¶ä»»å¡
å½ä»¤ï¼ crontab -e
å¨ç¼è¾æ¡è¾å ¥ï¼
09 11 * * * cd /home/dbback;sh mysql_backup.sh >> log.txt 2>>log.txt
è¿è¾¹å䏿³¨éï¼å颿¶é´è¡¨ç¤ºä»»å¡å¯å¨æ¶é´ä¸º11ç¹09åãèæ¬ä½ç½®ä¸º:/home/dbbackç®å½ä¸ãåé¢å°±ä¸ç¨è¯´äºã
æç»æ§è¡ç»æï¼
