簡體   English   中英

bash:如何編寫Shell腳本以從DigitalOcean Droplet內的MongoDB Docker容器中通過FTP發送mongodump,以備份MongoDB數據庫?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM