linux定時備份資料庫

2021-09-24 14:08:46 字數 2892 閱讀 2578

1.首先我們需要檢視磁碟空間,

命令:df -h

我們可以看到根目錄下的磁碟空間比較大,之所以要看磁碟空間,目的是防止我們經常備份資料庫,導致磁碟的容量不夠

2.新建檔案,存放資料庫備份指令碼和備份資料

cd /

mkdir backup

3 在backup目錄下新建指令碼名為backup.sh

vi backup.sh

或vim backup.sh

4.編輯 backup.sh 檔案

我指令碼裡邊的內容如上圖所示

藍色框中圈起來的部分是我後來改的,我一開始寫的是

mysqldump
**如下

mysqldump  -u$db_user -p$db_password --all-databases > $backup_dir/sqldata_$time.sql
shell指令碼

########檔名稱為當天時間#############

time="$(date +"%y%m%d%h%m%s")"

echo $time

echo '開始備份資料庫..'

db_user="debian-sys-maint" #資料庫庫的使用者名稱

db_password="kmc3yfl912vugecg" #資料庫的密碼

db_name="cawler" #要備份的資料庫的名稱

backup_dir="/backup" #資料庫要備份到**

all_db_name="sqldata" #用於刪除所有的資料

#備份指定的資料庫

/usr/bin/mysqldump -h127.0.0.1 -u$db_user -p$db_password $db_name > $backup_dir/$db_name"_"$time.sql

/usr/bin/mysqldump -h127.0.0.1 -u$db_user -p$db_password $db_name | gzip > $backup_dir/$db_name"_"$time.sql.gz

#備份所有資料,並進行壓縮

/usr/bin/mysqldump -h127.0.0.1 -u$db_user -p$db_password --all-databases > $backup_dir/sqldata_$time.sql

/usr/bin/mysqldump -h127.0.0.1 -u$db_user -p$db_password --all-databases | gzip > $backup_dir/sqldata_$time.sql.gz

#刪除7天前的備份

find $/ -mtime +7 -name "*.sql.gz" -exec rm -rf {} \;

find $/ -mtime +7 -name "*.sql" -exec rm -rf {} \;

大家如果想要測試刪除備份語句可以試試下邊這兩句話

find $/ -mmin +1 -name "*.sql.gz" -exec rm -rf {} \;

find $/ -mmin +1 -name "*.sql" -exec rm -rf {} \;

這是刪除一分鐘之前的備份的語句

chmod -r 777 backup.sh
執行:

執行命令:

./backup.sh
完成後輸入

ls
看是否備份成功

從上圖中我們可以看到我們資料庫的備份

6.開啟定時任務

crontab 格式

分 時 日 月 周 執行命令

第 1 列分鐘 1~59,每分鐘用 或者/1表示,整點分鐘數為00或0

第 2 列小時 1~23(0 表示 0 點)

第 3 列日 1~31

第 4 列月 1~12

第 5 列星期 0~6(0 表示星期天)

第 6 列要執行的命令

0 3 * * * /backup.sh,此命令表示在每天的凌晨三點執行一次指令碼,可自行調整時間

這樣定期資料備份就完成了

操作

首先我們需要輸入:

crontab -e
進入如下頁面:

我們只需要在我們的最後一行資料定時開啟的命令就好了

最後我們只需要

ctrl + x

然後輸入

y就可以儲存退出了

如果大家看到了這一句,那說明你很有可能成功了,然後就是等待到你設定的時間去驗證。

linux 定時備份資料庫

linux下定時備份mysql使用到了crontab系統,其按日期對備份結果進行儲存,從而達到備份資料庫的目的。1 建立mysql中資料庫的備份目錄,mkdir mysqlbackdir 2 建立mysql備份指令碼,vi usr sbin bak mydb 2012 6 19 edit by ji...

linux 定時備份資料庫 上傳

編輯crontab定時任務,每分鐘執行一次 home oracle bak 1.sh crontab e 1 home oracle bak 1.sh home oracle bak backup.log 自動備份資料庫並將上一次備份資料刪除,並壓縮 根據不同的oracle安裝路徑,設定的路徑不同 ...

linux下定時備份資料庫

為了資料的安全,小弟不才,由於公司沒有dba,資料量也不大 全部400多m 便想了用linux的批處理來進行每天晚上定時備份,將備份檔案按日期命名。不廢話,上步驟 cd var spool cron vim root 指定要執行的批處理檔案路徑。比如 0 23 opt backup.sh 意思是每天...