nighty

          折騰的年華
          posts - 37, comments - 143, trackbacks - 0, articles - 0

          2013年3月27日

          系統為ubuntu server,二臺機器A和B,IP為A 192.168.1.111,B 192.168.1.222
          A為rsync server,啟動為守護進程,B為備份機,做為rsync client,最后用crontab做一個簡單的作業,定時在B上執行同步文件的功能
          A的安裝和配置如下:
          1.  apt-get install rsync   可能提示系統已經安裝有了
          2. 配置文件/etc/rsyncd.conf
              默認安裝時是不會有這個配置文件的,但是可以 cp /usr/share/doc/rsync/examples/rsyncd.conf /etc  把它示例中的配置文件拷貝過來
              vi /etc/rsyncd.conf    這里參數有點多,但是有些可以先不管,關注重點的
              [ftp]  這里是模塊,可以配置多個,這個是系統默認給出的一個配置,下面給一個本機上的配置示例:
          --------------------------------------------------------------------------------------------------
          # so omit the "pid file" line completely in that case.
          pid file=/var/run/rsyncd.pid
          #syslog facility=daemon
          #socket options=
          # MODULE OPTIONS
          [share]
          comment = public archive
          path = /var/www/pub
          use chroot = no
          max connections=2
          # lock file = /var/lock/rsyncd
          # the default for read only is yes...
          read only = no
          list = yes
          uid = nobody
          gid = nogroup
          # exclude = 
          # exclude from = 
          # include =
          # include from =
          auth users = rsync
          secrets file = /etc/rsyncd.secrets
          strict modes = yes
          hosts allow = 192.168.1.222
          # hosts deny =
          ignore errors = yes
          ignore nonreadable = yes
          transfer logging = yes
          log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
          timeout = 600
          refuse options = checksum dry-run
          dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
          ---------------------------------------------------------------------------------------------
          這里,最上面的是pid文件位置。然后配置了一個模塊名叫做share,最大連接數是2,read only = no,指定為非只讀(不然同步時會有權限問題)
          而后面的auth users = rsync 是指定一個同步的賬戶名叫做rsync,這個賬戶的認證文件是/etc/rsyncd.secrets,當然我們要創建這個文件

          3.  創建 /etc/rsyncd.secrets文件,內容為: rsync:123  表示rsync這個用戶的密碼是123 然后修改文件的權限 chmod 600 /etc/rsyncd.secrets

          4.  rsync server做為守護進程
               vi /etc/default/rsync
               可以看到開頭處這樣聲明:
          ------------------------------------
          # start rsync in daemon mode from init.d script?
          #  only allowed values are "true", "false", and "inetd"
          #  Use "inetd" if you want to start the rsyncd from inetd,
          #  all this does is prevent the init.d script from printing a message
          #  about not starting rsyncd (you still need to modify inetd's config yourself).
          RSYNC_ENABLE=inetd
          -------------------------------------------
             做為守護進程,可以設置為true或是xinetd方式來啟動。于是我們安裝inetd   sudo apt-get install xinetd
             安裝好后配置inetd的配置文件  vi /etc/xinetd.d/rsync ,輸入如下內容:
          ---------------------------------------------------
          service rsync
          {
              disable = no
              socket_type = stream
              wait = no
              user = root
              server = /usr/bin/rsync
              server_args = --daemon
              log_on_failure += USERID
          }
          -------------------------------------------------------
          然后啟動xinetd,/etc/init.d/xinetd restart,A服務器的rsyncd server就完成了!

          5.  B服務器由于是client,不需要配置,也不需要安裝xinetd,直接可以通過命令行執行
          rsync --delete -azvv rsync@192.168.1.111::share /var/www/pub/
          這個命令就可以直接連接到192.168.111的rsync賬戶,它會提示你輸入密碼,就是A中的secrets文件中的密碼,然后同步share模塊到本機的/var/www/pub目錄,你可以事前在A機器上創建一個文件如test.txt,隨便寫點內容,然后執行些命令,看是不是B上多了這樣一個文件?如果是,則表示已經連接成功。你接下來就可以做crontab了!

          posted @ 2013-04-12 12:23 寒武紀 閱讀(1352) | 評論 (0)編輯 收藏

          二臺服務器,A的內網IP為192.168.1.111,B的內網IP為192.168.1.222,A做為master,B做為Slave
          1.  配置A的Mysql
               (1)  vim /etc/mysql/my.cnf
                     去掉[mysqld]段中 server_id =1 和log_bin=/var/log/mysql/mysql-bin.log的#注釋
                     加上  binlog-do-db = s3     s3就是要同步的數據庫的名稱,如果沒有這一行,表示同步所有的數據,另外 binlog_ignore_db = mysql。要表示忽略同步的數據庫名稱為mysql,如果有多個要指定同步或是忽略同步的數據,就配置多行,保存退出。
               (2) 創建一個復制用的賬戶(名稱為repl,允許從遠程連接,密碼為123456):
                    GRANT REPLICATION SLAVE, RELOAD,SUPER, NO *.* TO repl@'%' IDENTIFIED BY '123456';
                  FLUSH PRIVILEGES;
               (3) 重啟mysql服務,或是直接reboot機器也可以
               (4) 進入mysql,然后用 show master status\G  查看二進制日志的狀態,看到類似以下的結果:
                    +------------------+----------+--------------+------------------+
                    | File                      | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
                    +------------------+----------+--------------+------------------+
                    | mysql-bin.000003 |     1376  | s3                  |                           |
                    +------------------+----------+--------------+------------------+
          2.  配置B的Mysql
                (1) vim /etc/mysql/my.cnf
                     去掉[mysqld]段中 server_id =1 和log_bin=/var/log/mysql/mysql-bin.log的#注釋,把server_id改為2,要和master機器的不一樣。并增加以下內容:
                     binlog_do_db=s3
                     log-slave-updates
                    保存退出
               (2) 重啟mysql服務
               (3) 進入mysql,執行
                    CHANGE MASTER TO MASTER_HOST='192.168.1.111', MASTER_USER='repl',Master_Port=3306,MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=1376;
                    SLAVE START;
                    注意上面的CHANGE語句中,MASTER_LOG_FILE和MASTER_LOG_POS就是上面1.4中提到的show master status命令得到的結果,指定二進制文件的名稱和開始同步的位置。
               (4) 查看SLAVE狀態:    show slave status\G
          *************************** 1. row ***************************
                         Slave_IO_State: Waiting for master to send event
                            Master_Host: 192.168.1.111
                            Master_User: repl
                            Master_Port: 3306
                          Connect_Retry: 60
                        Master_Log_File: mysql-bin.000003
                    Read_Master_Log_Pos: 1376
                         Relay_Log_File: mysqld-relay-bin.000002
                          Relay_Log_Pos: 1355
                  Relay_Master_Log_File: mysql-bin.000003
                       Slave_IO_Running: Yes
                      Slave_SQL_Running: Yes
                        Replicate_Do_DB: 
                    Replicate_Ignore_DB: 
                     Replicate_Do_Table: 
                 Replicate_Ignore_Table: 
                Replicate_Wild_Do_Table: 
            Replicate_Wild_Ignore_Table: 
                             Last_Errno: 0
                             Last_Error: 
                           Skip_Counter: 0
                    Exec_Master_Log_Pos: 1376
                        Relay_Log_Space: 1512
                        Until_Condition: None
                         Until_Log_File: 
                          Until_Log_Pos: 0
                     Master_SSL_Allowed: No
                     Master_SSL_CA_File: 
                     Master_SSL_CA_Path: 
                        Master_SSL_Cert: 
                      Master_SSL_Cipher: 
                         Master_SSL_Key: 
                  Seconds_Behind_Master: 0
          Master_SSL_Verify_Server_Cert: No
                          Last_IO_Errno: 0
                          Last_IO_Error: 
                         Last_SQL_Errno: 0
                         Last_SQL_Error: 
            Replicate_Ignore_Server_Ids: 
                       Master_Server_Id: 1
              上面的紅色二行如果為YES則表示已經正常連接,可以進行復制了。

          posted @ 2013-04-09 20:33 寒武紀 閱讀(1745) | 評論 (0)編輯 收藏

              許久沒用服務器上裝的那個postgresql,其實是用來做redmine的數據庫的,考慮到mysql可能經常升級,而rails的連接組件在安裝上有點麻煩,所以當初就裝成postgresql。
              今天準備備份一下,用的phppgadmin,剛開始是提示其中的pg_dump執行路徑沒有配置,重新配置好后,導出的結果卻是空的損壞文件。于是想算了,還是轉到pg的安裝目錄下執行pg_dump.
              服務器裝的是centos 6.2,忘了當初是建了一個用戶postgres.postgres進行安裝的,用其它用戶切換到pg的安裝目錄下bin/pg_dump是執行不了的,提示在指定目標下生成導出文件。故猜測應該是postgres這個用戶的權限不足!
              cat /etc/passwd查看一下當前有多少用戶,的確有postgres.postgres用戶,密碼多少?忘了!反正有root,直接passwd修改成新的密碼吧,于是就立馬修改了該用戶的密碼,可以正確切換到postgres用戶了,還需要root為postgres指定一個目錄有操作權限
              chown -R postgres.postgres /var/xxxx   
              然后再回到pg的bin目錄下,執行pg_dump redmine > /var/xxx/redmine.bak
              這下終于正常了,別忘了還得去redmine安裝目錄下,備份下files文件夾。
              
              僅以此為筆記,以后可以查閱使用

          posted @ 2013-03-27 22:39 寒武紀 閱讀(1410) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 桓台县| 那坡县| 栾川县| 丽江市| 柳江县| 湟中县| 双鸭山市| 尖扎县| 青岛市| 武冈市| 雷州市| 昆明市| 华阴市| 肃北| 彰化县| 英吉沙县| 瑞安市| 太原市| 靖宇县| 临江市| 观塘区| 五华县| 临朐县| 昂仁县| 濮阳县| 泸水县| 周口市| 清涧县| 金湖县| 凤冈县| 宁晋县| 绥阳县| 彰化市| 陈巴尔虎旗| 二连浩特市| 九江县| 鹿邑县| 宁远县| 雅江县| 洪湖市| 郸城县|