linux下指令碼定時備份資料庫

2021-09-08 15:50:41 字數 2387 閱讀 4681

原文: 

一、常用的命令如下:

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 -u$username -p$password $database_name | gzip > $backup_dir/$database_name-$dd.sql.gz 

#寫建立備份日誌 

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

#找出需要刪除的備份 

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

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

chmodu+xbackup.sh

4:新增定時任務

檢測或安裝 crontab

確認crontab是否安裝:

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

執行命令:、

crontab -e 

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

每分鐘執行一次定時任務

5:測試任務是否執行

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

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

# tail -f /var/log/cron

linux定時備份資料庫指令碼

bin bash mysql使用者資訊 hostname user userpwd dbnames db1 db2 db3 date date y m d h m s 日期格式 作為檔名 date date d now y m d h m s archive date.tar.gz backup d...

Shell 定時備份資料庫指令碼

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

shell指令碼定時備份資料庫

bin bash 功能說明 本功能用於備份mysql資料庫 path bin sbin usr bin usr sbin usr local bin usr local sbin usr local mysql bin export path 資料庫使用者名稱 dbuser 資料庫密碼 dbpass...