濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > MySQL定時(shí)備份方案(利用Linux crontab)

MySQL定時(shí)備份方案(利用Linux crontab)

熱門標(biāo)簽:申請(qǐng)400電話電話價(jià)格 許昌外呼增值業(yè)務(wù)線路 廣東400企業(yè)電話申請(qǐng)流程 新鄉(xiāng)智能外呼系統(tǒng)好處 咸陽防封電銷卡 宜賓全自動(dòng)外呼系統(tǒng)廠家 臨沂做地圖標(biāo)注 地圖標(biāo)注客戶付款 石家莊400電話辦理公司

前言

雖說現(xiàn)在這世道有些愛情是有價(jià)的,但是數(shù)據(jù)是無價(jià)的,數(shù)據(jù)備份是尤為的重要,可以在你未來的某一天不小心刪庫了,不用著急跑路。

本片文章介紹的方案是利用Linux自身的crontab定時(shí)任務(wù)功能,定時(shí)執(zhí)行備份數(shù)據(jù)庫的腳本。

技術(shù)要點(diǎn):

  • 數(shù)據(jù)庫備份dump命令
  • shell腳本
  • Linux定時(shí)任務(wù)crontab

數(shù)據(jù)備份dump

數(shù)據(jù)庫都有一個(gè)導(dǎo)出數(shù)據(jù)庫內(nèi)數(shù)據(jù)和結(jié)構(gòu)的命令,就是備份。

將備份的數(shù)據(jù)還原會(huì)將原來的數(shù)據(jù)中的表刪了重建,再插入備份中的數(shù)據(jù),這是恢復(fù)。

這一點(diǎn)需要注意,如果恢復(fù)之前的數(shù)據(jù)比備份的多,恢復(fù)后多的數(shù)據(jù)就沒有了。

列出我常用的兩種數(shù)據(jù)庫的備份和恢復(fù)命令

postgresql:

備份 pg_dump -h [ip] -U [用戶名] [庫名] >[導(dǎo)出的.sql 文件]

恢復(fù) psql -s [庫名] -f [導(dǎo)出.sql 文件]

mysql:

備份 mysqldump -h -u [用戶名] -p [庫名] > [導(dǎo)出的.sql 文件]

恢復(fù) mysql -u [用戶名] -p [庫名] [導(dǎo)出的.sql 文件]

shell腳本

要完成一個(gè)功能完善的備份方案,就需要shell腳本。

我們要讓這個(gè)腳本備份到指定路徑,并壓縮存放,最多30個(gè),超過30個(gè)刪除最早的,并記錄操作日志。

啥也不說了,話都在腳本里,干了!

#用戶名
username=root
#密碼
password=nicai
#將要備份的數(shù)據(jù)庫
database_name=l_love_you

#保存?zhèn)浞菸募疃鄠€(gè)數(shù)
count=30
#備份保存路徑
backup_path=/app/mysql_backup
#日期
date_time=`date +%Y-%m-%d-%H-%M`

#如果文件夾不存在則創(chuàng)建
if [ ! -d $backup_path ]; 
then  
 mkdir -p $backup_path; 
fi
#開始備份
mysqldump -u $username -p$password $database_name > $backup_path/$database_name-$date_time.sql
#開始?jí)嚎s
cd $backup_path
tar -zcvf $database_name-$date_time.tar.gz $database_name-$date_time.sql
#刪除源文件
rm -rf $backup_path/$database_name-$date_time.sql
#更新備份日志
echo "create $backup_path/$database_name-$date_time.tar.gz" >> $backup_path/dump.log

#找出需要?jiǎng)h除的備份
delfile=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | head -1`

#判斷現(xiàn)在的備份數(shù)量是否大于閾值
number=`ls -l -crt $backup_path/*.tar.gz | awk '{print $9 }' | wc -l`

if [ $number -gt $count ]
then
 #刪除最早生成的備份,只保留count數(shù)量的備份
 rm $delfile
 #更新刪除文件日志
 echo "delete $delfile" >> $backup_path/dump.log
fi

給腳本起個(gè)顧名思義的漂亮名字 dump_mysql.sh

給腳本賦予可執(zhí)行權(quán)限 chmod +x dump_mysql.sh , 執(zhí)行后腳本變綠了就是可實(shí)行文件

執(zhí)行方法:./加腳本名稱

chmod命令參數(shù)含義--
+ 代表添加某些權(quán)限
x 代表可執(zhí)行權(quán)限

定時(shí)任務(wù)crontab

crontab是Linux自帶的一個(gè)定時(shí)任務(wù)功能,我們可以利用它每天凌晨執(zhí)行一次 dump_mysql.sh 腳本。

crontab用法:

  • crontab -l 查看定時(shí)任務(wù)列表
  • crontab -e 編輯(新增/刪除)定時(shí)任務(wù)

運(yùn)行crontab -e命令,打開一個(gè)可編輯的文本,輸入 00 01 * * * /app/dump_mysql.sh

保本并退出即添加完成。

內(nèi)容解釋:

00 01 * * * /app/dump_mysql.sh 分兩部分看,

第一部分 00 01 * * * 是定時(shí)任務(wù)的周期,第二部分 /app/dump_mysql.sh 到時(shí)間做的事情。

周期表達(dá)式是五個(gè)占位符,分別代表: 分鐘、小時(shí)、日、月、星期

占位符用 * 表示 每 ,用在第一位就是每分鐘,第二位每小時(shí),依此類推

占位符用 具體數(shù)字 表示 具體時(shí)間 ,10用在第一位就是10分,用在第三位表示10號(hào),依此類推

占位符用 - 表示 區(qū)間 ,5-7用在第一位就是5分到7分,用在第五位表示周5到周日,依此類推

占位符用 / 表示 間隔 ,5-10/2用在第一位就是5分到10分間隔2分鐘,用在第二位表示5點(diǎn)到10點(diǎn)間隔2小時(shí),依此類推

占位符用 , 表示 列表 ,5,10用在第一位就是5分和10分,用在第四位表示5月和10月,依此類推

總結(jié)

到此這篇關(guān)于MySQL定時(shí)備份方案的文章就介紹到這了,更多相關(guān)MySQL定時(shí)備份內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • linux使用mysqldump+expect+crontab實(shí)現(xiàn)mysql周期冷備份思路詳解
  • Linux6.7卸載系統(tǒng)自帶的mysql-libs* crontab命令不能用了原因分析
  • MySQL定時(shí)備份之使用Linux下的crontab定時(shí)備份實(shí)例
  • Linux系統(tǒng)利用crontab定時(shí)備份Mysql數(shù)據(jù)庫方法

標(biāo)簽:合肥 鎮(zhèn)江 阜新 北京 臺(tái)灣 日照 貴州 鷹潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL定時(shí)備份方案(利用Linux crontab)》,本文關(guān)鍵詞  MySQL,定時(shí),備份,方案,利用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL定時(shí)備份方案(利用Linux crontab)》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL定時(shí)備份方案(利用Linux crontab)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    莱西市| 灯塔市| 台中县| 广宁县| 蒲江县| 南投市| 永吉县| 通河县| 金华市| 鸡泽县| 昭平县| 西安市| 青州市| 邢台市| 彭山县| 林州市| 商都县| 和静县| 兴山县| 航空| 瓦房店市| 贵南县| 都昌县| 福泉市| 娱乐| 溧水县| 嘉善县| 咸宁市| 汉寿县| 兴安县| 永修县| 华坪县| 漳浦县| 泗水县| 图们市| 兴业县| 宁化县| 富川| 永安市| 仁化县| 崇文区|