[英]mysqldump does not dump everything when running in script
我有一个运行在名为dockersql
容器中的mysql服务器。 要备份它,我用
docker run -ti --rm --link dockersql:mysql -v $HOME/backups/20160202/:/hostbackup mysql /bin/bash -c "mysqldump -u user -p -h mysql database > /hostbackup/mysqldump.sql"
这很好。 我在执行其他操作的shell备份脚本中包含了同一行。 运行备份脚本时,我的用户表只得到了部分转储。 当我仅在终端中直接运行docker run命令时,我确实获得了users表的完整备份。
这是我的脚本的完整副本:
#!/bin/bash
function usage
{
echo "dockerBackup.sh [OPTIONS] <target directory>"
echo " full backup of currently running environment"
echo " OPTIONS"
echo " -n prefix : will use prefix in front of data container names"
echo " -h : help"
}
###################################
# Main Script Execution #
###################################
# prefix to be used for naming containers
prefix=''
# Option analysis
while getopts 'hn:' flag; do
case "${flag}" in
h) usage ;
exit 0;;
n) prefix="${OPTARG}""_" ;
argindex=$(($argindex+2));;
*)
error "Unexpected option ${flag}"
usage
;;
esac
done
echo "arguments total : $# argindex : $argindex"
if [ $(($#-1)) -ne $argindex ];then
echo "Invalid argument number $#"
usage
exit 1
else
backupdir=${!#}
echo "backuping to $backupdir directory"
echo "backuping mysql database"
docker run -ti --rm --link "$prefix"dockersql:mysql -v "$backupdir":/hostbackup mysql /bin/bash -c "mysqldump -u user -p -h mysql database > /hostbackup/mysqldump.sql"
#Other backup actions
fi
不好的问题,以前的研究不好
无论在脚本还是直接命令行中,Mysqldump都可以正常工作
在另一个容器中的某个地方,还有一个应清除的名为mysqldump.sql
的旧文件,该脚本在#Other backup actions
部分中我的问题中跳过的#Other backup actions
之一也正在备份和擦除由mysql docker run创建的文件命令。
对不起,您所花费和失去的任何时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.