最近在為做一些邊邊角角的工作,現在有一個需求要每天把mysql的數據庫dump出來到備份機器上面去.
看似簡單的任務也潛在了很多的需求,整理如下:
自動運行-crontab
腳本的環境變量設置-由于通過crontab 啟動執行的腳本環境變量沒有設置,需要在腳本中設置環境變量
使用何種方式備份數據庫, 這里使用mysqldump 工具
dump出來的備份文件通過什么方式拷貝到備份機器里面 -scp
清理N天前失效的備份文件.
ok 針對以上我們一個一個的來
1 自動運行-crontab
crontab -u 用戶名 -e
26 10 * * * /opt/mysql/bin/backupmysql.sh 1>/opt/mysql/bin/myserver02.log 2>&1
每天10點26分執行腳本,并且把內容發送到日志文件中,如果不希望有日志也可用寫如下
26 10 * * * /opt/mysql/bin/backupmysql.sh 1>/dev/null 2>&1
2 腳本的環境變量設置
講登錄用戶下面的PATH 環境變量導入出來
PATH=”環境變量“
export $PATH
這樣就能夠保證了備份機器·
3mysqldump
mysqldump –socket=/xxxx/xxxx -uname -ppassword databasename>/myqdatabackup/myqdata.sql
由于在備份的時候報錯,所以收到的指出了socket文件的路徑
4拷貝文件到另外一個機器 -使用scp命令進行文件的拷貝
使用scp的要求:1 編輯機器上面的/etc/ssh/sshd_config 文件
添加啊Allowusers 添加用戶名
Allowgroups 添加組名
2 在主機上面生成key,并且拷貝到備份機上,這樣scp命令在拷貝文件的時候就不用輸入密碼了
ssh-keygen -t rsa
scp id_rsa.pub mysql@11.11.11.11/opt/mysql/.ssh/authorized_keys
使用 /var/log/secure 日志進行問題的排查
原創文章,作者:simplyred,如若轉載,請注明出處:http://www.www58058.com/9824
粗糙了哦