備份MySQL資料庫II-自動備份的Script

  • 備份 MySQL 資料庫 I-基本資料庫操作

  • Script 的撰寫 # vim /root/mysql-backup.sh
     #!/bin/bash
     YMD=$(date +%Y-%m-%d)
     YMD180=$(date +%Y-%m-%d --date -180days)
     basedir="/var/www/mysqlbackup"

     #備份當月資料庫
     /usr/bin/mysqldump -u root -pQUpM6EaQHMaaEJnu --all-database > "$basedir"/"$YMD".ccdb.sql

     #刪除半年以前的備份
     /bin/rm -rf "$basedir"/"$YMD180".ccdb.sql

     #備份至 NAS 空間
     /usr/bin/rsync -av --progress --delete --port=873 --password-file=/etc/rsyncd.secrets "$basedir"/ admin@192.168.xxx.xxx::mysqlbackup  // /etc/rsyncd.secrets 的內容是連到 NAS 的管理者密碼
     export LANG=zh_TW.UTF-8
     mail -s "網頁伺服器維護通知信" root@localhost < /root/backuplog.txt   // 維護通知信的內容

    # vim /root/backuplog.txt
     每月1日早上6點進行資料庫備份作業,保留半年內的備份。

     已完成MySQL資料庫自動備份作業
     已完成MySQL資料庫備份檔上傳NAS作業(\\backupserver\mysqlbackup)
    註:192.168.xxx.xxx::mysqlbackup是NAS路徑。

    自動排程:每月1日早上6點進行資料庫備份作業 # crontab -e
     0 6 1 * * /root/mysql-backup.sh

    備份MySQL資料庫I-基本資料庫操作

  • 20130129:備份 MySQL 資料庫 II-自動備份的 Script
  • 20130129:如果重開機後,MySql進不去了,請參考這篇文章:http://phorum.study-area.org/index.php/topic,53080.0.html

  • 考完 RHCE 後偷懶了一段時間,該是回來的時候了。
    因為工作的需要,曾經寫了網頁伺服器自動份備的 Script,目前因為要備份資料庫,又有新內容要產出了。
    所以實戰還是最容易增進實力的方法。

    安裝 Mysql 相關套件、啟動服務並進行設定 # yum install -y mysql mysql-server
    # chkconfig mysqld on
    # service mysqld start
    # mysqladmin -u root password 12345  // 參考補充
    # /usr/bin/mysql_secure_installation  // 參考補充
    # mysql -u root -p databse_name  // -p 代表登入使用者有密碼保護
      Enter password:
     Reading table information for completion of table and column names
     You can turn off this feature to get a quicker startup with -A

     Welcome to the MySQL monitor. Commands end with ; or \g.
     Your MySQL connection id is 9
     Server version: 5.1.66 Source distribution

     Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

     Oracle is a registered trademark of Oracle Corporation and/or its
     affiliates. Other names may be trademarks of their respective
     owners.

     Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

     mysql>show databases;
     +--------------------+
     | Database
     +--------------------+
     | information_schema
     | mysql
     +--------------------+
     2 rows in set (0.00 sec)

     mysql>create database backup_test;  // 新增一個資料庫;刪除的指令drop database backup_test;
     mysql>show databases;
     +--------------------+
     | Database
     +--------------------+
     | information_schema
     | backup_test
     | mysql
     +--------------------+
     2 rows in set (0.00 sec)

    備份所有資料庫:連帳號也會一併備份 # mysqldump -u root -p --all-databases > /root/test.sql
    匯入所有資料庫 # mysql -u root -p < /root/test.sql
    補充:第一次啟動 MySql 時的狀態,會提醒使用者接下來要執行什麼指令。 # service mysqld start
     Initializing MySQL database: Installing MySQL system tables...
     OK
     Filling help tables...
     OK

     To start mysqld at boot time you have to copy
     support-files/mysql.server to the right place for your system

     PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
     To do so, start the server, then issue the following commands:

     /usr/bin/mysqladmin -u root password 'new-password'
     /usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

     Alternatively you can run:
     /usr/bin/mysql_secure_installation

     which will also give you the option of removing the test
     databases and anonymous user created by default. This is
     strongly recommended for production servers.

     See the manual for more instructions.

     You can start the MySQL daemon with:
     cd /usr ; /usr/bin/mysqld_safe &

     You can test the MySQL daemon with mysql-test-run.pl
     cd /usr/mysql-test ; perl mysql-test-run.pl

     Please report any problems with the /usr/bin/mysqlbug script!

                                [ OK ]
    Starting mysqld:                  [ OK ]

    終於拿到證書!YA........

    中間真的是幾經波折~原廠說沒有我的RHCSA ID,所以無法給我RHCE證書,但我考試時明明有填RHCSA ID,
    後來想一想,ID是XXX-XXX-XXX,我好像都沒有把dash加進去!所以才會產生這個問題。
    還好寫信給原廠後的二個工作日(2 US business days),原廠就完成資料合併並把這張可愛的證書寄給我!
    Linux從不會到會的一年真的有些辛苦,要一邊工作一邊學習!
    辛苦得來的果實更加甜美,也可以開開心心的過個農曆年了!

    DNS伺服器-正向及反向解析設定

    DNS查詢只會使用53/UDP,除非是做Zonetranfer才會使用53/TCP。

    正向解析(Forward DNS lookup):從主機名稱查到 IP 位址的流程
    # dig www.hinet.net
     .....(略)
     ;; ANSWER SECTION:
     www.google.com. 5 IN A 74.125.31.103
     www.google.com. 5 IN A 74.125.31.104
     www.google.com. 5 IN A 74.125.31.105
     www.google.com. 5 IN A 74.125.31.106
     www.google.com. 5 IN A 74.125.31.147
     www.google.com. 5 IN A 74.125.31.99

     .....(略)

    反向解析(Reverse DNS lookup):從 IP 位址查到主機名稱的流程
    # dig -x 168.95.1.1
     .....(略)
     ;; ANSWER SECTION:
     1.1.95.168.in-addr.arpa. 5 IN PTR dns.hinet.net.
     .....(略)

    範例:解析 192.168.122.0/24 網域內的郵件伺服器
    DNS 伺服器(192.168.122.108):ns.linux.org.tw
    郵件伺服器(192.168.122.225):mailer.linux.org.tw
    測試用主機(192.168.122.76)
    網域名稱:linux.org.tw

    DNS 伺服器

    1. 編輯主設定檔 /etc/named.conf
    2. # vim /etc/named.conf
       listen-on port 53 { any; };
       listen-on-v6 port 53 { any; };
       allow-query { any; };

      # service named restart

    3. 開啟防火牆

    4. 測試:解析外部網域成功
    5. # dig www.google.com @192.168.122.108
       .....(略)
       ;; ANSWER SECTION:
       www.google.com. 250 IN A 74.125.31.105
       www.google.com. 250 IN A 74.125.31.99
       www.google.com. 250 IN A 74.125.31.147
       www.google.com. 250 IN A 74.125.31.103
       www.google.com. 250 IN A 74.125.31.104
       www.google.com. 250 IN A 74.125.31.106
       .....(略)

      # dig -x 168.95.1.1 @192.168.122.108
       .....(略)
       ;; ANSWER SECTION:
       1.1.95.168.in-addr.arpa. 86345 IN PTR dns.hinet.net.
       .....(略)

    6. 測試:解析內部網域的郵件伺服器失敗失敗
    7. # dig mailer.linux.org.tw @192.168.122.108
        沒有 ANSWER SECTION:

      # dig -x 192.168.122.225 @192.168.122.108
        沒有 ANSWER SECTION:

    8. 增加 zone 記錄,可放在主設定檔或 /etc/named.rfc1912.zones
    9. # vim /etc/named.rfc1912.zones
       zone "linux.org.tw" IN {
         type master;
         file "linux.org.tw.zone";
       };

       zone "122.168.192.in-addr.arpa" IN {
         type master;
         file "192.168.122.zone";
       };

    10. 新增並編輯 linux.org.tw.zone 檔案
    11. # cp -p /var/named/named.localhost /var/named/linux.org.tw.zone
      # vim linux.org.tw.zone
       $TTL 1D
       @ IN SOA dns root.linux.org.tw. (  // @為 zone 的名稱 linux.org.tw
                2013010201 ; serial
                1D ; refresh
                1H ; retry
                1W ; expire
                3H ) ; minimum
           NS dns
           IN MX 10 mailer
       dns A 192.168.122.108
       mailer A 192.168.122.225

    12. 新增並編輯 192.168.122.zone 檔案
    13. # cp -p /var/named/named.loopback /var/named/192.168.122.zone
      # vim 192.168.122.zone
       $TTL 1D
       @ IN SOA dns.linux.org.tw. root.linux.org.tw. (  // @為 zone 的名稱 122.168.192.in-addr.arpa
                2013010201 ; serial
                1D ; refresh
                1H ; retry
                1W ; expire
                3H ) ; minimum
           NS dns.linux.org.tw.
       108 PTR dns.linux.org.tw.
       225 PTR mailer.linux.org.tw.

    14. 重啟服務
    15. # service named restart

    測試用主機(192.168.122.76)

    1. 增加一筆 DNS 位址 192.168.122.108
    2. # vim /etc/resolv.vonf
       nameserver 192.168.122.108
      # chattr +i /etc/resolv.vonf  // 當 NetworkManager 重啟後,會自動更改內容,此方法可鎖定檔案(-i 可移除鎖定)。不然就是要停止 NetworkManager 開機時啟動,並更改 /etc/sysconfig/network-scripts/ifcfg-eth* 內容。

    3. 正解 DNS 及郵件伺服器成功
    4. # dig dns.linux.org.tw
       .....(略)
       ;; ANSWER SECTION:
       dns.linux.org.tw. 86400 IN A 192.168.122.108

       .....(略)

      # dig mailer.linux.org.tw
       .....(略)
       ;; ANSWER SECTION:
       mailer.linux.org.tw. 86400 IN A 192.168.122.225

       .....(略)

    5. 反解 DNS 及郵件伺服器成功
    6. # dig -x 192.168.122.108
       .....(略)
       ;; ANSWER SECTION:
       108.122.168.192.in-addr.arpa. 86400 IN PTR dns.linux.org.tw.

       .....(略)

      # dig -x 192.168.122.225
       .....(略)
       ;; ANSWER SECTION:
       225.122.168.192.in-addr.arpa. 86400 IN PTR mailer.linux.org.tw.

       .....(略)

    新年新希望!!!

    希望 1 月的 RHCE 和 4 月的 CCNA 可以順利考到!加油加油!!!!