如何在bash脚本的mongodump备份文件名中添加日期戳
解决方案
你只需要新增1行日期变量定义,再调整输出目录的拼接规则即可,修改后的完整脚本如下:
db="SPECIFY_DB_NAME" # specify collections collection_list="<collection1> <collection2> <collection3>" # if its running on local machine: host=127.0.0.1 port="SPECIFY PORT" # where to dump: out_prefix=/Temp # 新增:获取格式为 年.月.日 的当前日期戳 backup_date=$(date +%Y.%m.%d) for collection in $collection_list; do echo $collection # 修改输出目录规则,按要求拼接日期 out_dir="${out_prefix}/${collection}.${backup_date}/" mkdir -p ${out_dir} mongodump --host $host --port $port --collection $collection --db $db --out ${out_dir} done
改动说明
- 新增的
backup_date=$(date +%Y.%m.%d)会在脚本每次执行时自动生成符合要求的日期字符串,%Y代表4位年份、%m代表2位月份、%d代表2位日期 - 调整了
out_dir的拼接逻辑,最终输出的目录结构就会和你要求的/Temp/collection.2021.11.22完全一致 - 如果你需要保留数据库名在路径里,只需要把
out_dir的定义改成${out_prefix}/${db}_${collection}.${backup_date}/即可
注意:如果你的服务器时区和预期时区不一致,可以在date命令前指定时区,例如要使用北京时间的话,把日期获取的命令改成
backup_date=$(TZ=Asia/Shanghai date +%Y.%m.%d)即可。
内容的提问来源于stack exchange,提问作者Kwaker
相关产品推荐
相关产品推荐

