linux實現資料庫定時備份任務

2021-10-09 05:04:39 字數 3189 閱讀 2912

使用命令實現乙個資料庫定時備份任務:

***\一、常用的命令如下:

1、編輯乙個新的crontab任務

crontab -e

2、檢視編寫後的crontab任務

crontab -l

3、重啟contab任務服務

service crond restart

4、檢視contab任務狀態

service crond status

5、重新載入配置

service crond reload

6、關閉服務

service crond stop

7、啟動服務

service crond start

8、crontab時間格式

# for details see man 4 crontabs

# example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) or jan,feb,mar,apr …

# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

---------------------

二、使用命令實現乙個資料庫定時備份任務:

*1:建立備份的目錄*

cd /home

mkdir backup

cd backup

*2:建立備份的shell指令碼*

vi backup.sh

#!/bin/bash

#備份儲存路徑

backup_dir=/home/yiqiliuliu/mysqlbackup

#日期dd=date +%y%m%d%h

#使用者名稱

username=「root」

#密碼password=「123456」

#將要備份的資料庫

database_name=「hcgx」

#簡單寫法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.dump

#mysqldump命令所在路徑,可以先find / -name mysqldump 查詢出來位置

#在這邊要注意一下,執行mysqldump的時候,一定要加上完整的路徑,一般這種備份檔案的指令碼都是放在crontab中,定時執行的。而你如果直接使用mysqldump,不加上完整的路徑的話,會出現**crontab的定時任務不能自動執行,但是手動執行指令碼一直能成功,這就涉及到crontab的環境變數問題了.

/usr/local/mysql/bin/mysqldump -uuse

rnam

e−

pusername -p

userna

me−p

password $database_name | gzip > bac

kupd

ir

/backup_dir/

backup

d​ir

/database_name-$dd.sql.gz

#寫建立備份日誌

echo "create bac

kupd

ir

/backup_dir/

backup

d​ir

/database_name-$dd.sql.gz " >> $backup_dir/log.txt

#找出需要刪除的備份

find $backup_dir/ -name 「*.sql.gz」 -type f -mtime +1 -exec rm {} ;

*3:給sh新增可執行的許可權*

chmod` `u+x `backup`.sh
*4:新增定時任務*

檢測或安裝 crontab

確認crontab是否安裝:

執行 crontab 命令如果報 command not found,就表明沒有安裝

執行命令:、

crontab -e

* * * * * /home/yiqiliuliu/yiqiliuliu.sh

每分鐘執行一次定時任務

*5:測試任務是否執行*

很簡單,我們就執行幾次「ls」命令,看看一分鐘過後檔案有沒有被建立就可以了!

如果任務執行失敗了,可以通過以下命令檢視任務日誌:

# tail -f /var/log/cron

資料庫備份指令碼

#!/bin/bash

export pgpassword='lty@100729'

curdate=`date +%f-%h-%m-%s`

dir=/home/nianxh/pgbak

dumpdir=/usr/local/postgresql-9.5/bin/pg_dump

dbase=huanghua

if [ ! -d $dir ];then

mkdir -p $dir

fi/usr/local/postgresql-9.5/bin/pg_dump --host 192.168.1.3 --port 5432 --username lantaiyuan -d huanghua |gzip > $dir/$dbase$curdate.dmp.gz

#$dumpdir $dbase |gzip > $dir/$dbase$curdate.dmp.gz

find $dir -ctime +15 -name "*.gz" | xargs rm -f

cronttab定時任務
0 8 * * * /home/nianxh/pgbak/pagbak.sh #每天8點定時備份

Linux中實現定時備份資料庫

需求分析 1 每天凌晨 2 10 備份 資料庫 mydatebase 到 data backup db 2 備份開始和備份結束能夠給出相應的提示資訊 3 備份後的檔案要求以備份時間為檔名,並打包成 tar.gz 的形式,比如 2018 12 12 230201.tar.gz 4 在備份的同時,檢查是...

linux 定時備份資料庫

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

linux定時備份資料庫

1.首先我們需要檢視磁碟空間,命令 df h 我們可以看到根目錄下的磁碟空間比較大,之所以要看磁碟空間,目的是防止我們經常備份資料庫,導致磁碟的容量不夠 2.新建檔案,存放資料庫備份指令碼和備份資料 cd mkdir backup 3 在backup目錄下新建指令碼名為backup.sh vi ba...