我正在尝试从数据库创建备份,但如果数据库文件低于特定大小,我不希望它覆盖 last.sql,这是每次启动项目时导入的文件。
这是我的导出脚本
cd /app/builds/databasefiles/
echo -e "currently in directory $(pwd)"
# copy the new one to its own file with datetime information
filename_with_date=$(date +"%Y-%m-%d_%H:%M:%S").sql
_print "filename: " ${filename_with_date}
# Export database to location
docker-compose exec db mysqldump -ularavel -p"laravel" laravel > /app/builds/databasefiles/${filename_with_date}
_print "Wait for the database export to be complete"
sleep 5
minimumsize=200
actualsize=$(du -k "${filename_with_date}" | cut -f 1)
if [ $actualsize -ge $minimumsize ]; then
cp /app/builds/databasefiles/${filename_with_date} /app/builds/databasefiles/last.sql
else
RED='\033[0;31m'
NC='\033[0m' # No Color
printf "${RED}Could not backup your database.\n${NC}"
fi
然而,问题是我不断收到以下回复:
filename: 2017-03-03_10:49:29.sql
Wait for the database export to be complete
du: cannot access '2017-03-03_10:49:29.sql': No such file or directory
/usr/bin/vc: line 40: [: -ge: unary operator expected
当我检查数据库文件夹中的文件时,我确实看到了 2017-03-03_10:49:29.sql 文件。我想知道为什么脚本说它找不到文件,我需要更改什么以确保它起作用?
如果您想要该docker
命令创建的文件的大小,则必须将正确的名称传递给du
.
actualsize=$(du -k "/app/builds/databasefiles/${filename_with_date}" | cut -f 1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句