#!/bin/bash
# ignore report and report_detail
now=$(date "+%Y-%-m-%d_%H-%M-%S")
test_ignore_report="/root/test_data_backup/test_ignore_report{$now}.sql"
# don't use -it, it's a trap
$ docker exec {container} mysqldump --ignore-table={database}.{table} -u{user} -p{password} {database} > {target filename}
docker exec mysql mysqldump --ignore-table=test.report --ignore-table=test.report_detail -utest -ptest2020 test > $test_ignore_report
# delete the first line, because there's mysqldump useing password at command waring at first line.
sed -i '1d' $test_ignore_report
# only table struct, use -d
# specify table, use --tables {table}
report="/root/test_data_backup/report{$now}.sql"
docker exec mysql mysqldump -utest -ptest2020 -d test --tables report report_detail > $report
sed -i '1d' $report
一个实际的例子:
backup_dir="/data/hsh/mysql_backup" time="$(date +"%Y%m%d_%H%M%S")" username="root" password="joycode" data_file1="$backup_dir/fxpay"_"$time.sql" data_file2="$backup_dir/merunion"_"$time.sql" rm /data/hsh/mysql_backup/*.sql docker exec mysql mysqldump -u"$username" -p"$password" fxpay > $data_file1 docker exec mysql mysqldump -u"$username" -p"$password" merunion > $data_file2 tar -zcf "$backup_dir/fxpay"_"$time.sql".tar "$data_file1" tar -zcf "$backup_dir/merunion"_"$time.sql".tar "$data_file2" find $backup_dir -mtime +3 -type f | xargs rm -f
参考:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END













