Linux下mysql資料庫自動定時備份
對於網遊來說,資料庫中的資料尤其重要,實際運營中通常會有DBA或者運維人員對資料庫中資料進行日常備份,防止伺服器宕機或硬碟損壞導致的資料丟失問題
1.建立備份目錄
cd /home/game
mkdir backup
cd backup
2.建立備份shell指令碼
vi bkDatabaseName.sh
將以下內容複製貼上
#!/bin/bash
#!/bin/bashmysqldump -uusername -ppassword DatabaseName > /home/game/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql
把username 替換為實際的使用者名稱
把password 替換為實際的密碼
把DatabaseName 替換為實際的資料庫名
3.新增可執行許可權
chmod u+x bkDatabaseName.sh
新增可執行許可權之後先執行一下,看看指令碼有沒有錯誤,能不能正常使用
./bkDatabaseName.sh
4.新增計劃任務
檢測或安裝crontab
執行以下命令看是否安裝有crontabcrontab
如果錯“command not found”,則表明沒安裝;如果沒安裝,先安裝,參照以下部落格
CentOS下使用yum命令安裝計劃任務程式crontab
使用rpm命令從CentOS系統盤安裝計劃任務程式crontab
新增計劃任務
crontab -e輸入以下內容並儲存
*/1 * * * * /home/backup/bkDatabaseName.sh
意思是每隔一分鐘執行一次bkDatabaseName.sh,crontab格式參照以下部落格
5.測試計劃任務是否執行
執行幾次“ll”命令看下是否有檔案建立就知道了。如果任務執行失敗,看以下日誌
tail -f /var/log/cron
輸出大概是這樣的:
Nov 23 18:00:01 app CROND[31215]: (mysql) CMD (/home/mysql/.wipefs)
Nov 23 18:00:01 app crontab[31219]: (mysql) LIST (mysql)
Nov 23 18:01:01 app CROND[31388]: (root) CMD (run-parts /etc/cron.hourly)
Nov 23 18:01:01 app run-parts(/etc/cron.hourly)[31388]: starting 0anacron
Nov 23 18:01:01 app run-parts(/etc/cron.hourly)[31397]: finished 0anacron
Nov 23 18:02:01 app CROND[31549]: (root) CMD (/home/game/backup/bkdd5.sh)
6.備份資料庫到遠端主機
scp d4tool_$(date +%Y%m%d_%H%M%S).sql [email protected]:/home/backup
意思是將本地檔案複製到261這個主機的backup目錄下,scp命令參考如下部落格
scp命令
這樣每次用scp命令的時候都需要輸入261的登陸密碼,很不方便,需要免密輸入
7.scp無需輸密碼傳送檔案
兩種方法:1.配對祕鑰 2.用expect指令碼
配對祕鑰
在源主機A上用如下命令生成配對祕鑰:[[email protected] ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e2:9e:98:7a:36:62:bc:d8:d1:b3:3c:fe:f8:4e:fd:9c [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| |
| . S |
| . . o |
| .. o o . |
| o+o=O . o . |
|..+BB** E |
+-----------------+
直接enter就好,生成的rsa跟pub檔案都放在預設的/root/.ssh目錄下。將pub檔案拷貝到目標主機B上的/root/.ssh/authorized_keys中(如果沒有則建立一個),
scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
這樣就ok了
用expect指令碼
#!/usr/bin/expect
set timeout 10
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set src_file [lindex $argv 3]
set dest_file [lindex $argv 4]
spawn scp $src_file [email protected]$host:$dest_file
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" { send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
expect "100%"
expect eof
注意程式碼剛開始的第一行,指定了expect的路徑,與shell指令碼相同,這一句指定了程式在執行時到哪裡去尋找相應的啟動程式。程式碼剛開始還設定了timeout的時間為10秒,如果在執行scp任務時遇到了程式碼中沒有指定的異常,則在等待10秒後該指令碼的執行會自動終止。
從以上程式碼剛開始的幾行可以看出,我為這個指令碼設定了5個需要手動輸入的引數,分別為:目標主機的IP、使用者名稱、密碼、本地檔案路徑、目標主機中的檔案路徑。如果將以上指令碼儲存為expect_scp檔案,則在shell下執行時需要按以下的規範來輸入命令:
./expect_scp 192.168.75.130 root 123456 /root/src_file /root/dest_file
以上的命令執行後,將把本地/root目錄下的src_file檔案拷貝到使用者名稱為root,密碼為123456的主機192.168.75.130中的/root下,同時還將這個原始檔重新命名為dest_file
spawn代表在本地終端執行的語句,在該語句開始執行後,expect開始捕獲終端的輸出資訊,然後做出對應的操作。expect程式碼中的捕獲的(yes/no)內容用於完成第一次訪問目標主機時儲存金鑰的操作。有了這一句,scp的任務減少了中斷的情況。程式碼結尾的expect eof與spawn對應,表示捕獲終端輸出資訊的終止
使用expect需要了解的一點是:用expect速度會比較慢,因為需要等待返回的資料,然後輸入命令執行,沒有ssh金鑰登入的快速
相關推薦
Linux下mysql資料庫自動定時備份
對於網遊來說,資料庫中的資料尤其重要,實際運營中通常會有DBA或者運維人員對資料庫中資料進行日常備份,防止伺服器宕機或硬碟損壞導致的資料丟失問題 1.建立備份目錄 cd /home/game mkdir backup cd backup2.建立備份shell指令碼 vi
Linux下mysql的自動定時備份
yaml val dev 目錄 lang 自動 blank UNC -- 1、查看磁盤空間情況: 既然是定時備份,就要選擇一個空間充足的磁盤空間,避免出現因空間不足導致備份失敗,數據丟失的惡果! 存儲到當前磁盤這是最簡單,卻是最不推薦的;服務器有多塊硬盤,最好是把備份存放到
Linux下mysql資料庫每天自動備份定時備份
1、檢視磁碟空間情況:既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗,資料丟失的惡果! 儲存到當前磁碟這是最簡單,卻是最不推薦的;伺服器有多塊硬碟,最好是把備份存放到另一塊硬碟上;有條件就選擇更好更安全的儲存介質;# df -h Filesys
Linux下mysql資料庫的自動備份與還原 遠端備份和本地備份
Linux系統下Mysql備份還原 MySql的還原與備份 1 備份 mysqldump -u root -p shop > /home/andy/shop20150910.sql
Linux下mysql資料庫定時備份並刪掉3天前的備份檔案
1.首先檢查下有沒有安裝crond,命令為service crond status,如果出現unrecognized service,則說明沒有安裝,如果出現 crond is stopped。如果出現crond (pid 1956) is running...則表示
Linux下Oracle資料庫自動備份Shell指令碼
1.在伺服器建立備份目錄,並賦予許可權 mkdir -p /backup/P_DATA #新建shell指令碼存放路徑 mkdir -p /backup/P_DB_BACK #新建Oracle資料庫備份目錄 chown -R oracle:oinstall /backup/P
windows環境下 Mysql資料庫自動備份
確定mysqldump 命令是否可用1,在 dos模式 下,進入對應mysql bin 目錄。 如 本例為 C:\Program Files\MySQL\MySQL Server 5.7\bin2,輸入如下命令C:\Program Files\MySQL\MySQL Serv
linux下 mysql資料庫的備份和還原
#mysqldump db_name >/path/name.sql 上面的命令意思是把一個庫匯出到一個SQL檔案. 當然,你直接在有ROOT密碼的機子上執行以上命令一定會報錯.所以,請用 #mysqldump db_name >/path/na
Linux下—mysql資料庫的多例項實現
準備環境: centos7 安裝 yum install mariadb-server 規劃實現多例項的目錄結構、 埠:3306,3307, 3308 每個例項存放資料庫的資料夾 /data/mysql{3306,3307,3308} /data/mysql/3306/{etc,
linux下mysql的自動補全工具mycli
習慣了在bash命令列下的tab自動補全功能,在linux下安裝mysql,或者是mariadb後發現不能自動補全,這就讓我很難受,所以我找到了一個很強大的工具可以實現自動補全 這個工具就是mycli,這個工具很強大,先來看一下 我用的是centos7下的ma
Linux下mysql資料庫安裝
Linux下mysql資料庫的安裝 本文主要介紹通過tar.gz進行資料庫的安裝,也可通過yum進行直接安裝 該筆記基於mysql5.5.61版本。 1、安裝mysql 1)、上傳mysql的tar包到/usr目錄下 2)、安裝mysql 解壓mysq
Linux下Tomcat日誌自動定時打包完美實現
一、場景 1、環境 CentOS 7.0,Tomcat 8.0.33 ,(jdk-1.8.0_171) 2、目的 隨著時間推移,tomcat下的日誌檔案catalina.out越來越大,當檢視日誌時效率低下。所以,為了方便日誌的查閱,將catalina.out
mysql定時執行某一儲存過程,並實現mysql資料庫的定時備份
mysql儲存過程 1、儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數)來呼叫執行它。 語法:CREATE PROCEDURE 過程名([[IN|OU
Linux下MySQL資料庫主從同步配置
Linux下MySQL資料庫主從同步配置 一.配置mysql主資料庫#172.30.65.122 mysql -u root-p#進入控制檯 create databasecesudb#建立資料庫測速db insert intomysql.user(Host,User,Pa
9、Linux下mysql資料庫安裝與配置實操
1、安裝 sudo yum -y install mysql-server 2、 sudo vim /etc/my.cnf 將字符集設定成UTF-8 3、將mysql設定為隨系統啟動 sudo chkconfig mysqld on sudo chkco
AWS Linux下MySQL資料庫的安裝與配置
1.root使用者登入Linux,使用yum 命令安裝MySQL,安裝完畢後,mysql 資料庫路徑在/var/lib/mysql ,配置檔案路徑為/etc/my.cnf sudo yum install mysql sudo yum install mysql-ser
Linux下MySQL資料庫操作的常用命令列
一.linux下啟動mysql的命令: 1. mysqladmin start 2. /ect/init.d/mysql start (前面為mysql的安
MYSQL資料庫自動定期備份和恢復工具
MYSQL資料庫備份主要有兩種方式: 1. 只備份資料,不備份資料機構。 SQL: SELECT * FROM table_name INTO OUTFILE 'filepath' FIELDS TERMINATED BY '|' ENCLOSED BY '"'
Linux下mysql資料庫一主一從同步配置
MySQL主從同步配置 mmj 16.09.29 1.確認執行環境 1.1確認主從IP 主伺服器(master):192.168.3.10 從伺服器(slave):192.168.3.18 1.2確認資料庫版本 都為5.5.31 2.主伺服器上配置 2.1修改MySQ