【问题标题】:How do I automatically back up a deployed meteor database?如何自动备份已部署的流星数据库?
【发布时间】:2014-07-07 02:18:35
【问题描述】:

我已使用以下命令成功备份了已部署的流星数据库中的数据:

meteor mongo --url MYSITE.meteor.com

mongodb://client:PASSWORD@HOST:27017/MYSITE_meteor_com

mongodump -u 客户端 -h HOST:27017 -d MYSITE_meteor_com -p 密码

但我认为必须可以编写一个 shell 脚本来自动执行此操作。我假设我可以使用 grep 从第一个命令返回的 url 中提取变量,然后将它们输入到第二个命令中。

有谁知道更多关于 shell 脚本的信息吗?

【问题讨论】:

    标签: shell meteor


    【解决方案1】:

    这是 bash 中的一个示例(未经测试,因为我不使用 app.meteor.com):

    #!/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
    

    【讨论】:

    • 使用变量当然是一个明智的建议——但我需要将第一次调用返回的值:meteor mongo --url $SITE 分配给这些变量。
    • 你的意思是这样的:NEWVAR=$(meteor mongo --url $SITE) ?
    • 第一个命令返回一个临时密码,例如,我需要捕获并分配给第二个命令。但是密码嵌入在一个非常复杂的字符串中,需要对其进行解析。这就是为什么我认为 grep 是要走的路。
    • 我觉得命令行工具sed更适合这个东西,关于它的教程可以在这里找到:tutorialspoint.com/unix/unix-regular-expressions.htm
    猜你喜欢
    • 2013-05-24
    • 2014-04-06
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多