1喇喉、創(chuàng)建備份目錄
mkdir /home/mysql mkdir /home/mysql/backup mkdir /home/mysql/backup/scripts mkdir /home/mysql/backup/files mkdir /home/mysql/backup/logs
2、新建備份腳本
touch /home/mysql/backup/script/backupp.sh vim /home/mysql/backup/script/backupp.sh #!/bin/bash #備份目錄 BACKUP_ROOT=/home/mysql/backup BACKUP_FILEDIR=BACKUP_ROOT/logs #當(dāng)前日期 DATE=BACKUP_FILEDIR/test_$DATE.sql.gz echo -------------------數(shù)據(jù)庫備份成功完成-------------
3振愿、保存腳本
1、保存時可能會遇到用戶權(quán)限不夠冕末,可用sudo命令切換到超級用戶下操作
4、執(zhí)行命令
sh /home/mysql/backup/scripts/backupp.sh
可能會遇到錯誤提示:mysqldump :command not found
這時需要查找本機mysqldump命令的位置
方法1
find / -name mysqldump
我查到的地址是:/usr/local/mysql/bin/mysqldump枪孩,最直接的方式就是直接將它復(fù)制到腳本命令上
方法2
然后通過ln命令為mysqldump在/usr/bin創(chuàng)建一個軟鏈接 ln -fs /usr/local/mysql/bin/mysqldump /usr/bin Linux ln命令是一個非常重要命令藻肄,它的功能是為某一個文件在另外一個位置建立一個同步的鏈接。 當(dāng)我們需要在不同的目錄攻询,用到相同的文件時州弟,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄婆翔,放上該文件,然后在 其它的目錄下用ln命令鏈接(link)它就可以阴挣,不必重復(fù)的占用磁盤空間纺腊。 格式: ln [參數(shù)][源文件或目錄][目標(biāo)文件或目錄] --參數(shù) -b 刪除茎芭,覆蓋以前建立的鏈接 -d 允許超級用戶制作目錄的硬鏈接 -f 強制執(zhí)行 -i 交互模式誓沸,文件存在則提示用戶是否覆蓋 -n 把符號鏈接視為一般目錄 -s 軟鏈接(符號鏈接) -v 顯示詳細的處理過程 創(chuàng)建鏈接后,在測試就沒有問題了宿百。
重新執(zhí)行成功后在保存位置就已經(jīng)生成了備份文件了
4洪添、恢復(fù)
!/bin/bash #備份目錄 BACKUP_ROOT=/home/mysql/backup BACKUP_FILEDIR=BACKUP_FILEDIR/test_20200228.sql.gz | mysql -u root -ptest! test echo ----------------恢復(fù)成功完成-------------
5痊焊、定時任務(wù)
檢查是否安裝crontabs
crontab
安裝(已安裝忽略)
yum -y install vixie-cron yum -y install crontabs
說明:
vixie-cron 軟件包是 cron 的主程序忿峻;
crontabs 軟件包是用來安裝薄啥、卸裝逛尚、或列舉用來驅(qū)動 cron 守護進程的表格的程序。
配置(已安裝忽略)
cron 是 linux 的內(nèi)置服務(wù)绰寞,但它不自動起來,可以用以下的方法啟動蕾管、關(guān)閉這個服務(wù): service crond start //啟動服務(wù) service crond stop //關(guān)閉服務(wù) service crond restart //重啟服務(wù) service crond reload //重新載入配置 service crond status //查看crontab服務(wù)狀態(tài) 在CentOS系統(tǒng)中加入開機自動啟動: chkconfig --level 345 crond on cron 的主配置文件是 /etc/crontab菩暗,它包括下面幾行: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 前四行是用來配置 cron 任務(wù)運行環(huán)境的變量。 SHELL 變量的值告訴系統(tǒng)要使用哪個 shell 環(huán)境(在這個例子里是 bash shell)旷坦; PATH 變量定義用來執(zhí)行命令的路徑佑稠。 cron 任務(wù)的輸出被郵寄給 MAILTO 變量定義的用戶名。 如果 MAILTO 變量被定義為空白字符串(MAILTO="")舌胶,電子郵件就不會被寄出。 HOME 變量可以用來設(shè)置在執(zhí)行命令或腳本時使用的主目錄辆它。 限制對 cron 的使用: /etc/cron.allow和/etc/cron.deny 文件被用來限制對 cron 的使用。 這兩個使用控制文件的格式都是每行一個用戶锰茉。 兩個文件都不允許空格。 如果使用控制文件被修改了片吊,cron 守護進程(crond)不必被重啟协屡。 使用控制文件在每次用戶添加或刪除一項 cron 任務(wù)時都會被讀取。 無論使用控制文件中的規(guī)定如何联予,root 都總是可以使用 cron材原。 如果 cron.allow 文件存在季眷,只有其中列出的用戶才被允許使用 cron,并且 cron.deny 文件會被忽略子刮。 如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用戶都被禁止使用 cron葵孤。
創(chuàng)建定時備份任務(wù)
添加定時任務(wù) crontab -e
兩分鐘執(zhí)行一次 #/home/mysql/backup/logs/job_(date +%Y%m%d) 2>&1
查看定時任務(wù)
查看定時任務(wù) crontab -l
定時清理歷史備份
創(chuàng)建腳本
touch /home/mysql/backup/scripts/backup_history_clean.sh
編寫腳本
!/in/bash #定時清理三天前備份文件腳本 echo ---------------定期清理開始------------------- #這里的time 表示 -天 這里是三天前的刪除 時間表示的是文件創(chuàng)建時間 find /home/mysql/backup/files -mtime +3 -name "*.gz" -exec rm -rf {} ; echo ---------------定期清理完成-------------------
添加定時任務(wù)
添加定時任務(wù) crontab -e
每天凌晨1點執(zhí)行 00 1 * * * sh /home/mysql/backup/scripts/backup_history_clean.sh
查看定時任務(wù)
查看定時任務(wù) crontab -l
相關(guān)鏈接參考:
https://tool.lu/crontab/尤仍;http://blog.itpub.net/26736162/viewspace-2641620/