定時備份docker容器中mysql的數據


echo '開始備份數據'
 
now=$(date "+%Y%m%d")
backup_dir="/data/back_up"
 
#獲取容器id
mysqlid=`/usr/local/bin/docker ps -aqf "name=mysql5.7"`
 
#進入mysql容器
/usr/local/bin/docker exec -i ${mysqlid} bash<<'EOF'
 
#mysqldump導出表結構和數據
if [ ! -d "/backup" ]; then
    mkdir -p /backup
fi
 
if [ -f "/backup/db.sql" ]; then
    rm -rf /backup/db.sql
fi
 
mysqldump --single-transaction -u root -h 127.0.0.1 --password=123456 --all-databases > /backup/db.sql
 
echo '成功制作備份sql'
 
if [ $? -ne 0 ]; then
    echo 'mysqldump運行失敗'
    exit
    EOF
fi
 
exit
 
EOF
 
#將容器內sql文件導出到服務器
if [ ! -d "${backup_dir}" ]; then
    mkdir -p "${backup_dir}"
fi
 
/usr/local/bin/docker cp ${mysqlid}:/backup/db.sql ${backup_dir}/db_${now}.sql
 
if [ $? -ne 0 ]; then
    echo 'docker cp文件失敗'
    exit
fiecho '完成備份數據'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM