[英]bash: How do I write a shell script to sftp a mongodump from a MongoDB Docker container inside a DigitalOcean droplet to backup the MongoDB database?
我正在运行将Meteor-up部署在DO小滴上的MeteorJS Webapp。 我希望从本地计算机运行.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
在远程Droplet(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键,这将提示您两次输入root密码。 转储文件夹将被复制到./$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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.