#!/bin/bash # Name:bakmysql.sh # This is a ShellScript For Auto DB Backup and Delete old Backup #備份地址 backupdir=/home/mysqlbackup #備份文件後綴時間 time=_` date +%Y_%m_%d_%H_%M_%S ` #須要備份的數據庫名稱 db_name=test #mysql 用戶名 db_user=root #mysql 密碼 db_pass=123456 mysqldump -u $db_user -p$db_pass $db_name | gzip > $backupdir/$db_name$time.sql.gz #刪除一分鐘以前的備份文件 find $backupdir -name $db_name"*.sql.gz" -type f -mmin +1 -exec rm -rf {} \; > /dev/null 2>&1
保存退出mysql
說明:sql
代碼中 time=` date +%Y%m%d%H `也能夠寫爲time=」$(date +」%Y%m%d$H」)」
其中`符號是TAB鍵上面的符號,不是ENTER左邊的’符號,還有date後要有一個空格。
db_name:數據庫名;
db_user:數據庫用戶名;
db_pass:用戶密碼;
-type f 表示查找普通類型的文件,f表示普通文件。
-mtime +7 按照文件的更改時間來查找文件,+7表示文件更改時間距如今7天之前;若是是 -mmin +7 表示文件更改時間距如今7分鐘之前。shell
-exec rm {} ; 表示執行一段shell命令,exec選項後面跟隨着所要執行的命令或腳本,而後是一對兒{},一個空格和一個,最後是一個分號。
/dev/null 2>&1 把標準出錯重定向到標準輸出,而後扔到/DEV/NULL下面去。通俗的說,就是把全部標準輸出和標準出錯都扔到垃圾桶裏面;其中的&表示讓該命令在後臺執行。數據庫
定時執行bash
bak_config 文件代碼以下
spa
#every day exec 0 0 * * * /home/bak_sh/bak_day.sh #every week exec 0 0 * * 0 /home/bak_sh/bak_week.sh #every month exec 0 0 1 * * /home/bak_sh/bak_month.sh
先用查詢狀態命令查詢crond狀態,若是處在中止狀態則須先啓動;如已在啓動狀態,則無須理會。rest
操做命令以下:code
/sbin/service crond start 啓動orm
/sbin/service crond restart 重啓crontab
/sbin/service crond stop 中止
/sbin/service crond status 查詢狀態
查看服務是否已經運行用
ps -ax | grep cron
查看調度任務
crontab -l //列出當前的全部調度任務
crontab -r //刪除全部任務調度工做
添加調度任務
crontab /home/bak_sh/bak_config