如何在linux下寫指令碼定時備份mysql資料庫

2021-09-29 17:54:53 字數 1397 閱讀 3485

我們在工作中可以這麼做減少資料丟失概率

1. 先在某個資料夾下建立乙個指令碼,這裡命名為back_up_database.sh,在/mnt/data_dump/這目錄下

#!/bin/bash

basedir="/mnt/data_dump/";

cd "$basedir";

echo "開始備份資料庫";

echo `mysqldump -h127.0.0.1 -uroot -pahpu@2019# --default-character-set=utf8 -b onenetcom > database_dump_$(date +%y-%m-%d_%h-%m-%s).sql`;

echo "備份資料完成";

olddate=`date --date='5 day ago' +%y%m%d`;

#刪除當前日期-8的備份

echo `rm -rf database_dump_$olddate*`;

echo "刪除$olddate的備份成功"

2. 給該指令碼許可權

chmod 777 back_up_database.sh
3. 讓linux中自帶的定時任務命令,來執行,首先開啟定時任務,編輯

vim /etc/crontab
4. 在尾部輸入以下的行

#格式如下:minute hour day month week command 這裡是凌晨12點開始備份

# day的*表示每天 依次類推 每月 每週,但是是向下制約 每天存在了 每月就不存在了

00 24 * * * root /mnt/dump/backup_database.sh

這裡說明下,當你

vim /etc/crontab的時候

執行的時候,會在linux下告訴你 發郵件到你的某個路徑下了,自己去檢視,這裡不多說了

5. 檢視下定時任務日誌

tail -f /var/log/cron
6. 那我們執行以下的語句就可以還原資料庫了

mysql -u使用者 -p'密碼' 資料庫名< /mnt/data_dump/**.sql
如果你發現定時任務報錯:

(root) bad file mode

那麼你可以給個許可權 chmod 0600 /etc/crontab 

然後刪除下任務:cron -r

然後重啟下cron  systemctl restart crond.service  就可以

如何在Linux下實現定時器

如何在 linux 下實現定時器 在 linux 實現乙個定時器,不像 win32 下那樣直觀。在 win32 呼叫settimer 就行了,在 linux 下則沒有相應函式可以直接呼叫。定時器作為乙個常用的功能,在 linux 當然也有相應實現。下面我們看看幾種常用的方法。要實現定時器功能,最土的...

如何在Linux下實現定時器

如何在linux下實現定時器 在linux實現乙個定時器,不像win32下那樣直觀。在win32呼叫settimer就行了,在linux下則沒有相應函式可以直接呼叫。定時器作為乙個常用的功能,在linux當然也有相應實現。下面我們看看幾種常用的方法。要實現定時器功能,最土的辦法實現莫過於用sleep...

如何在Linux環境下實現定時執行PHP的計畫任務

實踐操作如下 1 工具 putty.exe 2 伺服器環境 ubuntu linux系統 thinkphp 3.1.3 php5.6 mysql 4 然後,在專案根目錄下建立cron.php,如下 url timeout 60 data array header array ch curl init...