之前由於需要用到mysql的自動資料庫指令碼備份,網上查了一些資料,但是資料基本不全,或者是指令碼有問題。現自己總結一下mysql的定時備份指令碼的過程
主要依賴crontab、vixie-cron以及dos2unix(指令碼在windows下編寫,需要轉換成unix的編碼,否則執行報錯),一下簡述安裝過程
yum -y install vixie-cron
yum -y install crontabs
yum -y install dos2unix*
#!/bin/bash
#保留備份個數,會刪除時間較早的.dump備份
number=3
#設定備份儲存路徑,yourpath替換成自己的備份儲存路徑
backup_dir=yourpath
#日期格式
dd=`date +%y%m%d`
#備份工具
tool=mysqldump
#資料庫使用者名稱
username=root
#資料庫密碼,由於密碼可能包含特殊字元,需要用''轉義
password='yourpwd'
#將要備份的資料庫名稱,yourdb替換成自己要備份的資料庫名,此指令碼只支援備份乙個資料庫,多資料庫mysqldump用法
database_name=yourdb
$tool -u $username -p$password --databases $database_name > $backup_dir/$database_name-$dd.dump
#寫建立備份日誌
echo "create $backup_dir/$database_name-$dd.dump" >> $backup_dir/log.txt
#查詢本目錄下所有備份檔案
#查詢備份檔案是按照備份檔案的生成時間來計算的
filenum=$(ls -l $backup_dir/*.dump | grep ^- | wc -l)
echo "number of backup files:"$filenum >> $backup_dir/log.txt
while(( $filenum > $number ))
do #取最舊的檔案,*.*可以改為指定檔案型別
oldfile=$(ls -rt $backup_dir/*.dump | head -1)
echo "delete file:"$backup_dir'/'$oldfile >> $backup_dir/log.txt
rm -f $oldfile
let "filenum--"
done
cd /yourpath
dos2unix yoursh
如果指令碼本身是在linux下編寫的則不需要進行轉換,但是如果指令碼是在windows下編寫的,則需要轉換。
基本操作命令
service crond start //啟動服務
service crond stop //關閉服務
service crond restart //重啟服務
service crond reload //重新載入配置
service crond status //檢視crontab服務狀態
crontab -l //檢視已經存在的配置
crontab -e //修改crontab的配置
將crond加入開機自啟,防止重啟後任務丟失
chkconfig –level 35 crond on
修改crontab的配置,配置如下
30 4 * * * /root/back/back.sh
linux下Oracle實現資料的自動備份
由於近期工作的原因,要做乙個簡單的oracle資料自動備份,因為是乙個單體應用,所以就利用了linux的定時任務和oracle的exp進行資料備份,如果有不足和需要改正的地方,歡迎各位高手指正,不勝感激。下邊就開始具體的操作 mkdir p u01 oracle bak data 新建資料備份目錄 ...
Linux配置postgresql自動備份
1 pg dump資料庫備份命令 usr pgsql 9.3 bin pg dump f c o u dotop h 127.0.0.1 p 5432 f data erp data db backup geyt 20170214 09 37 55.sql geyt2.linux配置postgres...
Linux 下的 mysql 自動備份
linux 下實現自動備份,主要就是編寫好執行備份的 shell script sh 檔案,設好許可權 可讀,可執行 然後利用 linux 定時任務crontab來執行備份指令碼就可以了。以後備份其他檔案也是這樣的執行過程 資料庫賬號 db user 資料庫密碼 db passwd 資料庫名稱 db...