国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MongoDB自動備份全過程實錄

數(shù)據(jù)庫 其他數(shù)據(jù)庫 MongoDB
前段時間,個人小程序 因服務(wù)器磁盤空間被占滿,導(dǎo)致MongoDB掛了。清理了一些無用的數(shù)據(jù)后,重啟MongoDB,竟然無法啟動,一番折騰(20分鐘)后,總算修復(fù)了。這讓我意識到:雖然是個人小項目,但也必須定期備份啊,否則數(shù)據(jù)丟了很尷尬的說。

MongoDB自動備份全過程實錄

前段時間,個人小程序 因服務(wù)器磁盤空間被占滿,導(dǎo)致MongoDB掛了。清理了一些無用的數(shù)據(jù)后,重啟MongoDB,竟然無法啟動,一番折騰(20分鐘)后,總算修復(fù)了。這讓我意識到:雖然是個人小項目,但也必須定期備份啊,否則數(shù)據(jù)丟了很尷尬的說。

碎碎念

我不是MongoDB高手,之所以選擇MongoDB,是因為需求不明確——MongoDB很適合不明確需求場景的開發(fā)。

個人對Elasticsearch更熟悉,Elasticsearch也很適合不定需求的業(yè)務(wù)開發(fā);但個人服務(wù)器只有1G內(nèi)存,用Elasticsearch得升級服務(wù)器,得花好多錢啊啊啊。

MongoDB備份比較簡單,只需用內(nèi)置的 mongodump 即可,命令格式如下:

  1. mongodump -h {mongodb主機(jī)名}:{端口} -u {賬號} -p {密碼} -d {數(shù)據(jù)庫名稱} -o {存儲路徑} 

然而,筆者為MongoDB設(shè)置的密碼是帶有特殊字符的,例如 @#$\ 之類,直接以如上形式執(zhí)行命令,會報錯!

所以筆者選擇不帶 -p 參數(shù)執(zhí)行命令,即:

  1. mongodump -h {mongodb主機(jī)名}:{端口} -u {賬號} -d {數(shù)據(jù)庫名稱} -o {存儲路徑} 

然后,命令提示符會提示輸入密碼。例如

  1. # mongodump -h 127.0.0.1 -u user -d itmuch -o /tmp/somepathEnter password

至此已實現(xiàn)MongoDB的備份。然而,手動備份還是挺麻煩的,怎么實現(xiàn)備份的自動化呢?

自動備份

正常來說,自動備份是比較簡單的——只需將手動備份的命令做成Shell腳本,并設(shè)置定時任務(wù)即可。然而,筆者的場景,命令是需要交互式輸入密碼的啊!

怎么才能自動輸入密碼呢?expect 登場了——一款提供自動交互的工具。

安裝expect

  1. yum install -y expect 

編寫expect腳本

expect語法非常簡單,和Shell幾乎一樣。筆者的腳本編寫如下:

  1. #!/bin/expect 
  2. # spawn是expect的語句,執(zhí)行命令前需添加該字眼 
  3. set DATE [exec date "+%Y-%m-%d"
  4. set DIR /xxxxx/dbbak-$DATE 
  5. spawn rm -rf $DIR 
  6. spawn echo 'removing...$DIR' 
  7. spawn mongodump -h {host:port}  -u {user} -d {dbname} -o $DIR 
  8. # 交互獲取是否返回password:關(guān)鍵字 
  9. expect "password:" 
  10. # 將密碼發(fā)送過去,注意***的換行不能少,否則得人工輸入回車。 
  11. send "密碼\r" 
  12. # 停留在遠(yuǎn)程控制臺,沒有這行就會直接返回本地控制臺,而不等shell執(zhí)行完 
  13. interact 

注釋很全面了,聰明的你閱讀肯定沒有壓力。最終備份出來的文件會存放在 /xxxxx/dbbak-備份日期 目錄中。

自動備份

筆者利用Linux定時任務(wù)實現(xiàn)自動執(zhí)行。

  1. crontab -e 

在新窗口中添加如下內(nèi)容:

  1. 0 0 1 * * ? /usr/bin/expect 上面expect shell的完整路徑 

原本以為這樣就可以定時執(zhí)行了,然而卻無法正常執(zhí)行。

百度后,將腳本修改為如下,終于可以正常執(zhí)行了。

  1. #!/bin/expect 
  2. # spawn是expect的語句,執(zhí)行命令前需添加該字眼 
  3. set DATE [exec date "+%Y-%m-%d"
  4. set DIR /xxxxx/dbbak-$DATE 
  5. spawn rm -rf $DIR 
  6. spawn echo 'removing...$DIR' 
  7. spawn mongodump -h {host:port}  -u {user} -d {dbname} -o $DIR 
  8. # 交互獲取是否返回password:關(guān)鍵字 
  9. expect "password:" 
  10. # 將密碼發(fā)送過去,注意***的換行不能少,否則得人工輸入回車。 
  11. send "密碼\r" 
  12.  
  13. set timeout 120 
  14. expect eof 
  15.  
  16. exit 

總結(jié)

本文沒什么難點,都是一些細(xì)節(jié)——

  • 因為密碼含有特殊字符,所以需要交互式輸入密碼;
  • 因為要交互式輸入密碼,所以使用了expect

寫出來主要是總結(jié)下踩到的坑,另外,expect是一款通用的提供自動交互的工具,用來實現(xiàn)ssh的自動登錄、sftp的自動登錄、mysql的自動登錄等。腳本的套路都和本文展示的結(jié)構(gòu)基本類似。 

責(zé)任編輯:龐桂玉 來源: 數(shù)據(jù)庫開發(fā)
相關(guān)推薦

2011-02-22 10:46:02

Samba配置

2009-12-08 17:56:16

WCF配置

2011-04-18 15:56:10

軟件測試

2009-04-13 12:37:18

2011-01-21 17:51:52

2011-09-06 15:38:20

QT安裝

2011-08-15 09:19:22

2009-06-10 16:55:42

cygwin netb安裝

2012-11-06 10:19:18

Java自定義加載Java類

2010-03-10 13:24:45

Zend Debugg

2010-06-17 13:10:09

Linux Grub修

2010-11-19 10:11:49

Oracle物化視圖

2010-03-01 17:01:03

Python編程技巧

2011-03-11 10:39:02

YUM安裝LAMP

2010-06-12 10:03:20

Ubuntu Grub

2010-07-21 14:51:19

telnet-serv

2017-04-25 18:03:11

Caffe深度學(xué)習(xí)框架

2010-02-23 11:35:38

Python 項目測試

2009-12-15 16:51:32

2010-06-11 13:15:07

UML軟件
點贊
收藏

51CTO技術(shù)棧公眾號

成人一区二区视频| 亚洲色图图片网| 亚洲福利视频久久| 午夜精品免费在线观看| 亚洲男人的天堂在线aⅴ视频| 综合电影一区二区三区 | 国产精品欧美综合在线| 国产亚洲1区2区3区| 91偷拍与自偷拍精品| 久久久久久免费毛片精品| 在线国产91| 综合网在线视频| 日本毛片在线免费观看| 3d动漫啪啪精品一区二区免费| 亚洲免费网址| 国产婷婷成人久久av免费高清| 不卡的看片网站| 色777狠狠狠综合伊人| 国产日韩在线亚洲字幕中文| 国内综合精品午夜久久资源| 精品网站aaa| 黄色欧美网站| 成人综合一区| 亚洲经典自拍| 久久精品1区| 狠狠v欧美v日韩v亚洲ⅴ| fc2成人免费人成在线观看播放| 欧美一区二区三区在线播放 | 亚洲国产一区二区三区在线| 热久久最新地址| av动漫在线看| 日本18视频网站| 国产1区2区3区在线| 九色91在线| 自拍偷拍亚洲图片| 国产精品一区二区av交换| 黄色精品免费| 黄色资源网久久资源365| 91蜜桃网址入口| 亚洲成av人综合在线观看| 91精品国产福利在线观看| 亚洲国产成人在线视频| 欧美裸体xxxx极品少妇| 91国产精品视频在线| 成人区精品一区二区| 一区二区三区四区久久| 免费毛片小视频| 国产精品精华液网站| 成人黄色网址| 欧美天堂在线| 日韩在线视频精品| 日韩成人免费电影| 久久精品夜夜夜夜久久| 欧美日韩中文在线观看| 欧美一区二区免费| 大量国产精品视频| 亚洲一区二区三区毛片| 国产又粗又长又爽视频| 毛片.com| 怡红院在线观看| 凹凸av导航大全精品| 亚洲国产免费| 久久久久九九视频| 欧美视频第二页| 日韩经典中文字幕在线观看| 97精品视频在线观看| 久久精品二区| 欧美少妇性生活视频| 一个人看的免费视频色| 亚洲丝袜一区| 亚洲第一二区| 99精品免费网| 欧美国产日韩在线观看| 9191国产精品| 欧美国产视频一区二区| 国产在线一区二区三区欧美| 91专区在线观看| 久草在线新视觉| 日本免费一区二区六区| 欧美日韩在线观看视频小说| 国产一区二区美女| 午夜精品久久久久影视| 国产一区二区三区在线观看网站| 国产精品一区=区| 精品免费久久久久久久| 一本大道香蕉8中文在线视频| av一区在线| 国产精品黄色| 国产精品污网站| 亚洲成人免费在线视频| 国产脚交av在线一区二区| 国产日产欧美一区二区| 免费福利在线观看| 精品一区二区三区中文字幕| 国产精品美女久久久| 中文字幕在线不卡国产视频| 日韩三级中文字幕| 国产大片精品免费永久看nba| 色哟哟免费网站| 粗大的内捧猛烈进出在线视频| 国产伦理精品| 午夜精品毛片| 国产日韩欧美不卡| 精品久久久久久久一区二区蜜臀| 国产精品久久999| 日日摸日日碰夜夜爽无码| av中文字幕在线| 欧美做受69| 国产成人精品免费网站| 欧美图片一区二区三区| 性色av一区二区咪爱| 免费观看国产视频在线| av网站在线免费观看| 亚洲欧洲美洲国产香蕉| 丰满放荡岳乱妇91ww| 91精品国产91久久久久久最新毛片| 日本a级片电影一区二区| 欧美大黑帍在线播放| 黄视频在线播放| 久久aimee| 国产精品一区二区久久精品爱涩| 欧美日韩午夜影院| 国产精品免费网站| 中文字幕第80页| 天天综合av| 国产精品xx| 亚洲一区bb| 欧美性受xxxx| 亚洲夜间福利| 欧美婷婷久久五月精品三区| 国产精品二区三区四区| 午夜精品久久久久久久久| 亚洲小说欧美另类婷婷| 簧片在线观看| 日韩在线www| 久久亚洲影院| 免费人成在线观看网站| 色吧影院999| 2023国产精品久久久精品双| 久久婷婷五月综合色国产香蕉| 欧美久久久久久久久久| 亚洲成色777777在线观看影院| 国产欧美一区二区| 黑森林精品导航| 国产激情久久| 美女mm1313爽爽久久久蜜臀| 欧美日韩亚洲网| 国产精品第8页| 亚洲欧美国产日韩综合| 日本精品不卡| 极品销魂美女一区二区三区| 日韩久久久精品| 精品亚洲第一| 国产高清在线观看| 99成人超碰| 亚洲大片在线观看| 国产91亚洲精品| www.久草.com| 成午夜精品一区二区三区软件| 久久影院午夜论| 久久精品男人天堂| 黄网站欧美内射| jizz久久久久久| 国产精品综合二区| 亚洲高清一二三区| 欧美三级网色| 综合图区亚洲| 免费精品视频| 91精品黄色片免费大全| 亚洲一区二区三区毛片| 人成在线免费视频| 欧美二区视频| 欧美亚洲日本一区| 91九色在线观看| 男男激情在线| 国产一区观看| 欧美日韩国产小视频在线观看| 丁香五月网久久综合| 国产爆初菊在线观看免费视频网站| 国产探花在线精品一区二区| 一级特黄大欧美久久久| 国产精品国产三级国产aⅴ9色| 原千岁中文字幕| 国产国产精品| 欧美少妇一区二区| 精品一卡二卡三卡四卡日本乱码 | 久久精品国产电影| 日韩一级性生活片| 三级成人黄色影院| 大陆成人av片| 深夜精品寂寞黄网站在线观看| 欧美视频在线观看网站| 一区二区三区无毛| 久久精品在这里| 91精品国产高清久久久久久久久 | 久久久久福利视频| av高清一区| 国产成人免费xxxxxxxx| 日韩中文字幕在线看| 凹凸日日摸日日碰夜夜爽1|