CentOS自動備份

2021-09-02 16:47:36 字數 2184 閱讀 9206

centos中使用shell指令碼實現每天自動備份**檔案和資料庫並上傳到ftp中..

一、安裝email傳送程式

複製** **如下:

yum install sendmail mutt

二、安裝ftp客戶端程式

本指令碼需要用到ftp客戶端程式將檔案上傳到ftp空間上面,因此必須安裝ftp客戶端,否則將出現ftp命令無法找到的錯誤。

安裝步驟請參考:《centos提示ftp:command not found》

複製** **如下:

#!/bin/bash

#你要修改的地方從這裡開始

mysql_user=root #mysql使用者名稱

mysql_pass=123456 #mysql密碼

mail_to=***[email protected] #資料庫傳送到的郵箱

ftp_user=ftpuser #ftp使用者名稱

ftp_pass=ftpuserpassword #ftp密碼

ftp_ip=***.***.***.*** #ftp位址

ftp_backup=backup #ftp上存放備份檔案的目錄,這個要自己得ftp上面建的

web_data=/home/wwwroot #要備份的**資料,如果是使用lnmp安裝包,則預設這個為**目錄

#你要修改的地方從這裡結束

#定義資料庫的名字和舊資料庫的名字

databakname=data_$(date +"%y%m%d").tar.gz

webbakname=web_$(date +%y%m%d).tar.gz

olddata=data_$(date -d -5day +"%y%m%d").tar.gz

oldweb=web_$(date -d -5day +"%y%m%d").tar.gz

#刪除本地3天前的資料

rm -rf /home/backup/data_$(date -d -3day +"%y%m%d").tar.gz /home/backup/web_$(date -d -3day +"%y%m%d").tar.gz

cd /home/backup

#匯出資料庫,乙個資料庫乙個壓縮檔案

for db in `/usr/local/mysql/bin/mysql -u$mysql_user -p$mysql_pass -b -n -e 'show databases' | xargs`; do

(/usr/local/mysql/bin/mysqldump -u$mysql_user -p$mysql_pass $ | gzip -9 - > $.sql.gz)

done

#壓縮資料庫檔案為乙個檔案

tar zcf /home/backup/$databakname /home/backup/*.sql.gz

rm -rf /home/backup/*.sql.gz

#傳送資料庫到email,如果資料庫壓縮後太大,請注釋這行

echo "content:this email is auto send by vps..." | mutt -a /home/backup/$databakname -s "subject:vps database backup" $mail_to

#壓縮**資料

tar zcf /home/backup/$webbakname $web_data

#上傳到ftp空間,刪除ftp空間5天前的資料

ftp -v -n $ftp_ip << end

user $ftp_user $ftp_pass

type binary

cd $ftp_backup

delete $olddata

delete $oldweb

put $databakname

put $webbakname

byeend

四、配置

給指令碼新增執行許可權:

複製** **如下:

chmod 774 /root/autobackuptoftp.sh

利用系統crontab實現每天自動執行:

複製** **如下:

crontab -e

輸入以下內容:

複製** **如下:

00 02 * * * /root/autobackuptoftp.sh

其中00 02為時間分/小時,可自行修改,例如:30 12 ***,就是每天12.30執行這個指令碼。

CentOS下每天自動備份mysql資料庫

每天自動備份mysql資料庫的指令碼,並且自動傳送到你指定的郵箱面,這樣vpser再也不會為丟失資料煩惱啦。mysqldump uuser ppassword databases db1 db2 db3 home website backups databackup.sql tar zcf home...

Centos7 設定mysql自動備份

要設定自動備份,思路是2個步驟,第一步 1 編寫shell備份指令碼 mysql user username mysql備份使用者 mysql password password mysql備份使用者的密碼 mysql host mysql port 3306 mysql charset utf8 ...

MySQL在CentOS上執行自動備份

很多人會問為什麼要使用svn或者是git,那麼我會問 我相信你寫的 很好,但是有一天你修改了很多很多的bug,但是突然想到以前的 中有乙個比較重要的演算法你不小心覆蓋掉了,這時候你應該怎麼辦?或許你會告訴我你可以在修改這些 之前備份一次當前修改的檔案,或者是當前專案。但是時間久了你的機器上會有多少備...