[英]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.