bash:如何编写一个shell脚本来从DigitalOcean液滴内的MongoDB Docker容器中读取一个mongodump来备份MongoDB数据库?

我正在运行一个MeteorJSnetworking应用程序,在DO滴上进行meteor注入。 我想从我的本地机器运行.sh来偶尔获取备份。 能够有时间戳的文件夹将是一个加号。

这是我想用一个.sh文件实现的:

在本地机器上:

ssh root@my.droplet.address # <prompt for password> 

内部液滴:

 docker exec -it mongodb bash 

在mongodb docker中:

 rm -rf dump mongodump -h 127.0.0.1 -d app 

在远程液滴上:

 rm -rf dump docker cp mongodb:/dump dump 

在本地机器上:

 sftp root@my.droplet.address 

在远程液滴(sftp)中:

 DATE=`date +%Y-%m-%d_%H%M%S` get -r dump $DATE 

是否有可能将所有这些在一个.sh文件?

在脚本中,您可以通过以下方式运行命令:

 ssh root@my.droplet.address "docker exec mongodb rm -rf dump && docker exec mongodb mongodump -h 127.0.0.1 -d app && rm -rf dump && docker cp mongodb:/dump dump && docker cp mongodb:/dump dump" ssh root@my.droplet.address:/dump $(date +%Y-%m-%d_%H%M%S) >/dev/null 2 

这是我设法做一个.sh文件。 没有SSH密钥,这会提示你两次inputroot密码。 转储文件夹将被复制到./$DATE。 其中$ DATE =本地机器上的当前date时间。

 #!/bin/bash DATE=`date +%Y-%m-%d_%H%M%S` ssh root@cleanr.ivanho.me "docker exec mongodb rm -rf dump && docker exec mongodb mongodump -h 127.0.0.1 -d app && rm -rf dump && docker cp mongodb:/dump dump" scp -r root@cleanr.ivanho.me:/root/dump $DATE