# linux每天定時備份數據庫并刪除十天前數據詳細步驟
**一、寫好shell腳本 mysqlbak.sh**
`#!/bin/sh`
`mysqldump -uroot -pmysqlroot xhblt |` `gzip` `>` `/mysqlbak/`````date` `'+%Y-%m-%d_%H:%M:%S'```.sql.gz`
`find` `/mysqlbak/` `-mtime +10 -name` `"*.sql.gz"` `-``exec` `rm` `-rf {} \;`
腳本解析:
mysqldump -uroot -pmysqlroot xhblt | gzip > /mysqlbak/`date '+%Y-%m-%d_%H:%M:%S'`.sql.gz
此舉含義為下載數據庫文件,將數據庫文件以”年-月-日-時-分-秒.sql.gz”的名稱存在根目錄下的mysqlbak文件夾中,數據庫的登錄備份信息為:(用戶名:root 密碼:mysqlroot 需要備份數據庫名稱為:xhblt)
`find` `/mysqlbak/` `-mtime +10 -name` `"*.sql.gz"` `-``exec` `rm` `-rf {} \;`
含義為:找到根目錄下mysqlbak文件夾中的數據然后刪除10天前的數據
**二、目錄創建以及文件上傳**
1、在根目錄下創建文件夾 mysqlbak作為備份目錄,目錄權為777
`mkdir` `/mysqlbak``;`
`chmod` `777` `/mysqlbak``;`
2、文件上傳
將寫好的shell腳本放在 /etc 目錄下,并且賦予權限 777
`chmod` `777` `/etc/mysqlbak``.sh`
**三、加入定時任務**
1、輸入 crontab –e 命令加入
`0 3 * * *` `/etc/mysqlbak``.sh` `//``每天凌晨三點執行shell文件`
2、輸入 service crond restart 重啟定時服務