ubuntu mysql怎么备份_Ubuntu下MySQL备份与异地备份
下面是一則MySQL備份實例,在Ubuntu下測試通過。完成任務是本地備份。可用于服務器端。
#! /bin/bash
echo "backupmysql V1.0"
###date stamp###
datestamp=$(date +%Y-%m-%d)
###path ###
startdir=/home/user/mysqlbackup
###bakfile prefix###
fileprefix=sql
echo "sqldump is starting.."
###bakup command####
mysqldump -uuser -ppassword -l databasename > $startdir/$fileprefix$datestamp.sql
echo "########################################################################"
echo "sqldump is done"
###tar file ###
cd $startdir
echo "the current directory is :"
pwd
tar zcvf $startdir/$fileprefix$datestamp.tgz $fileprefix$datestamp.sql
###del the sql file###
rm -rf $startdir/$fileprefix$datestamp.sql
echo "#######################################################################"
echo "......? Done"如果遠程將備份取到異地,如下我寫的一個客戶端用例(測試環境RedHat-as-5)。用sftp協議。引用:
#! /bin/bash
cd /home/user/mysqlbackup
lcd /home/mysqlbackup/
-get fileprefix$(date +%Y-%m-%d).tgz
quit
EOF注fileprefix$(date +%Y-%m-%d).tgz 與服務器端備份的相對應,
路徑為、home/user/mysqlbackup
get命令前加一個"-"以防止其執行錯誤時sftp執行過程被終止.
注:假設數據庫服務器名字為database,備份數據的服務器的名字backup,我們需要在backup服務器端運行腳本來取得database服務器端的備份文件。
兩臺服務器采用sftp傳輸文件
但是現實shell中sftp登錄需要交互式的密碼,
為了在遠端服務器采用非交互的sftp,我們可以選擇用密鑰的方法進行驗證登錄權限。從而代替密碼驗證方式。
首先需要我們在backup生成密鑰,并將其公鑰上傳到database服務器。
因為shell腳本中使用sftp時必須用到密鑰對(公鑰和私鑰),
可以使用如下命令
$ssh-keygen -d
然后分發公鑰
為了使用密鑰,必須將公鑰分發到欲登錄的遠程backup服務器上,
1.copy公鑰到欲登錄的遠程服務器的遠程用戶的家目錄下,例如:
cp id_dsa.pub到database:/home/user/.ssh/
若目錄/home/user/.ssh/不存在,需要我們手工建立。
公鑰文件更名為authorized_keys
修改公鑰文件的訪問權限
chmod 644 authorized_keys
總結
以上是生活随笔為你收集整理的ubuntu mysql怎么备份_Ubuntu下MySQL备份与异地备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何读懂内存条参数如何读懂内存条参数表
- 下一篇: 解析USGS网站页面中的地震空间数据