Shell 如何自动备份已部署的meteor数据库?
我已使用以下命令成功备份了部署的meteor数据库中的数据: meteor mongo——url MYSITE.meteor.com mongodb://client:PASSWORD@主持人:27017/MYSITE\u meteor\u com mongodump-u客户端-h主机:27017-d MYSITE\u meteor\u com-p密码 但我认为一定有可能编写一个shell脚本来实现自动化。我假设我可以使用grep从第一个命令返回的url中提取变量,然后将它们输入第二个命令 了解更多shell脚本的人能否就如何实现这一点提供建议?下面是bash中的一个示例(未经测试,因为我不使用app.meteor.com):Shell 如何自动备份已部署的meteor数据库?,shell,meteor,Shell,Meteor,我已使用以下命令成功备份了部署的meteor数据库中的数据: meteor mongo——url MYSITE.meteor.com mongodb://client:PASSWORD@主持人:27017/MYSITE\u meteor\u com mongodump-u客户端-h主机:27017-d MYSITE\u meteor\u com-p密码 但我认为一定有可能编写一个shell脚本来实现自动化。我假设我可以使用grep从第一个命令返回的url中提取变量,然后将它们输入第二个命令 了解
使用变量当然是一个明智的建议——但我需要将第一次调用:meteor mongo--url$SITE返回的值分配给这些变量。您的意思是:
NEWVAR=$(meteor mongo--url$SITE)
?第一个命令返回一个临时密码,例如,我需要捕获并分配给第二个命令。但是密码被嵌入了一个非常复杂的字符串中,需要对其进行解析。这就是为什么我认为grep是一个不错的选择。我认为命令行工具sed
更适合这种情况,有关它的教程可以在这里找到:
#!/bin/bash
# You might want to change these:
SITE = 'MYSITE.meteor.com'
CLIENT = 'my_usrname'
PASS = 'my_1337_pwd'
DUMPDIR = '/home/example/backups/'
NOW = $(date +"%Y%m%d-%H%M")
#Some fu to convert dots to underscores:
SITE_UNDERSCORE=${SITE//./_}
meteor mongo --url $SITE
mongodb://$CLIENT:$PASS@$SITE:27017/$SITE_UNDERSCORE
mongodump -u $CLIENT -h HOST:27017 -d $SITE_UNDERSCORE -p PASSWORD > $DUMPDIR/$SITE_UNDERSCORE.$NOW.mongodb