рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдмрд┐рдпрди рдирд┐рдЪреЛрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЛ рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдЕрд╕рдлрд▓-рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛

рдореБрдЭреЗ рджреЛ рд╕рд░реНрд╡рд░реЛрдВ рд╕реЗ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдорд┐рд▓рд╛ред рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ MySQL DBMS рдореЗрдВ рд╕реНрдерд┐рд░ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЧреНрд░рд╛рд╣рдХ рдХреА рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ 5 рдорд┐рдирдЯ рдХреЗ рднреАрддрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рднреМрдЧреЛрд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд 2 рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдЗрд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдбреЗрдмрд┐рдпрди рд╕реНрдХреНрд╡реАрдЬрд╝ рдУрдПрд╕ рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдбреЗрдмрд┐рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдбреАрдПрдирдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рддрд░реНрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреНред рдПрдХ рдбреЛрдореЗрди рдирд╛рдо test.ru рд╣реИред рдореЗрд░реЗ 2 рд╕рд░реНрд╡рд░ NS- рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рд╕рднреА рдЬрд╝реЛрди рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдкреНрд░рд╛рдердорд┐рдХ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ DNS рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ A рд░рд┐рдХреЙрд░реНрдб рдмреИрдХрдЕрдк рд╕рд░реНрд╡рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
DNS рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рджреНрд╡рд┐рджрд┐рд╢ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдмреИрдХрдЕрдк рд╕рд░реНрд╡рд░ рдкрд░, рдореБрдЦреНрдп рдХреЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпреВрдирд┐рд╕рди рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ MySQL рдкреНрд░рддрд┐рдХреГрддрд┐ рджреНрд╡рд┐-рджрд┐рд╢рд╛рддреНрдордХ рдорд╛рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреВрдирд┐рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рдкреНрд░рддрд┐рдХреГрддрд┐ ("рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡") рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдПрдХ рджрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рджреНрд╡рд┐-рджрд┐рд╢рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрдВрдЧреЗред
рдкреВрд░реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдордзреНрдпрд╕реНрде рдПрдХ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдЧреА, рдЬрд┐рд╕реЗ рдореИрдВ рдиреАрдЪреЗ рджреВрдВрдЧрд╛ред

рд╕рд┐рд╕реНрдЯрдо рдХреА рддреИрдпрд╛рд░реА

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ apache2 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдл рдбреЗрдмрд┐рдпрди рд╕рд┐рд╕реНрдЯрдо рд╣реИ, mysql- рд╕рд░реНрд╡рд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред рдореИрдВ рдЙрдирдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рднрд░рд╛ рд╣реИред
рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдорд╛рд╕реНрдЯрд░ рдЖрдИрдкреА = 10.1.0.1 рд╣реИ, рдмреИрдХрдЕрдк рд╕рд░реНрд╡рд░ рдЧреБрд▓рд╛рдо рдЖрдИрдкреА = 10.2.0.2 рд╣реИ

рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХ рдХрд░реЗрдВ

рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ / рд╕рд╛рдЗрдЯ / рд╡реЗрдм / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд╛рдЪреЗ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рд░рд╣рд┐рдд рдкрд╣реБрдБрдЪ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдбрд╝реА рдмрдирд╛рдПрдВрдЧреЗ:
ssh-keygen -t rsa (passphrase  ) scp /root/.ssh/id_rsa.pub root@10.2.0.2:/root/.ssh/authorized_keys2 

рдФрд░ рдЗрд╕реА рддрд░рд╣ рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░:
 ssh-keygen -t rsa (passphrase  ) scp /root/.ssh/id_rsa.pub root@10.1.0.1:/root/.ssh/authorized_keys2 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ / рд╕рд╛рдЗрдЯ / рд╡реЗрдм / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдорд╛рди рд╣реИ рдФрд░ Unison рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 apt-get install unison 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ /root/.unison/web.prf рдмрдирд╛рдПрдВ:
 #   ,    root = /site/web root = ssh://root@10.2.0.2//site/web #       owner = true times = true batch = true #         log = true logfile = /var/log/unison_sync.log 

рдЕрдм рдЖрдк рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 unison web 

рд╣рд░ 5 рдорд┐рдирдЯ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 #!/bin/sh # ,      if [ -f /var/lock/sync.lock ] then echo lockfile exists! exit 1 fi /usr/bin/touch /var/lock/sync.lock /usr/bin/unison test /bin/rm /var/lock/sync.lock #End 

рд╣рдо рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд╝рд╛рдЗрд▓ /root/bin/sync.sh рдкрд░ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рд╣рдо рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ рд╣реИрдВ
 chmod +x /root/bin/sync.sh 

рдФрд░ CRON "crontab -e" рдореЗрдВ рдХрд╛рд░реНрдп рдЬреЛрдбрд╝реЗрдВ:
 */5 * * * * /root/bin/sync.sh > /dev/null 2>&1 

рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рд░ 5 рдорд┐рдирдЯ рдореЗрдВ рдЪрд▓рд╛рдПрдВред

MySQL рдкреНрд░рддрд┐рдХреГрддрд┐

рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо MySQL рдкреНрд░рддрд┐рдХреГрддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб some_password рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдореБрдЦреНрдп рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдкрд░, рдлрд╝рд╛рдЗрд▓ /etc/mysql/my.cnf рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдирд┐рдореНрди рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ:
 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M binlog_ignore_db = mysql binlog_ignore_db = test master-host = 10.2.0.2 #ip-  slave- master-user = replication #   master-password = some_password #  master-port = 3306 

рдФрд░ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдмрд╛рдЗрдВрдб-рдПрдбреНрд░реЗрд╕ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдорд╛рдВрд╕рдкреЗрд╢реА рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ:
 bind-address = 0.0.0.0 

рд╣рдо рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде MySQL рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмреИрдХрдЕрдк рдЧреБрд▓рд╛рдо рд╕рд░реНрд╡рд░ рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреГрддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ рд╣реИрдВ:
 mysql -u root -p Enter password:     root,     >grant replication slave on *.* to 'replication'@'10.2.0.2' identified by 'some_password'; >flush privileges; >quit; /etc/init.d/mysql restart 


рд╣рдо рджреВрд╕рд░реЗ рджрд╛рд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдВрдкрд╛рджрди /etc/mysql/my.cnfред рдирд┐рдореНрди рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ:
 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M binlog_ignore_db = mysql binlog_ignore_db = test master-host = 10.1.0.1 #ip-  master- master-user = replication #   master-password = some_password #  master-port = 3306 

рдФрд░ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдо рдмрд╛рдЗрдВрдб-рдПрдбреНрд░реЗрд╕ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдорд╛рдВрд╕рдкреЗрд╢реА рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ:
 bind-address = 0.0.0.0 

рд╣рдо рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ MySQL рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреГрддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ рд╣реИрдВ:
 mysql -u root -p Enter password:     root,     >grant replication slave on *.* to 'replication'@'10.1.0.1' identified by 'some_password'; >flush privileges; >quit; /etc/init.d/mysql restart 


рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░, рд╣рдо рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓ рд░рд╣реА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ:
 #mysql тАФu root тАФp Enter password:     root,     >show slave status \G 

рдкреНрд░рджрд░реНрд╢рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ, рд╣рдо рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
 Slave_IO_State: Waiting for master to send event Slave_IO_Running: Yes Slave_SQL_Running: Yes 

рдпрджрд┐ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд▓реЙрдЧ рджреЗрдЦреЗрдВред

DNS рд╕рд░реНрд╡рд░

Test.ru рдбреЛрдореЗрди рдЬрд╝реЛрди рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЛрдореЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд╕реМрдВрдкрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡реИрд╢реНрд╡рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдирд╛рдо ns.master.my.com рдФрд░ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП ns.slave.my.com рд╣реИрдВред
DNS рдЬрд╝реЛрди рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХреЗ рдмрд╛рдж рд╣реА рд╣рдо рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░, bind9 рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 apt-get install bind9 

рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП /etc/bind/onym.conf рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:
 echo 'include "/etc/bind/my-zones.conf";' >> /etc/bind/named.conf 

рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЕрдкрдиреА /etc/bind/my-zones.conf рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
 zone "test.ru" { type master; file "/etc/bind/db.test.ru"; }; 

рдкрд╣рд▓реЗ рдореБрдЦреНрдп рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдкрд░, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде /etc/bind/db.test.ru рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ:
 $ORIGIN test.ru. $TTL 10 @ IN SOA ns.master.my.com. admin.my.com. ( 2 ; Serial 10 ; Refresh 10 ; Retry 10 ; Expire 10 ) ; Negative Cache TTL IN NS ns.master.my.com. IN NS ns.slave.my.com. ; @ IN A 10.1.0.1 

рдЬрд╣рд╛рдБ ns.master.my.com рдЗрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдбреЛрдореЗрди рдирд╛рдо рд╣реИ (рдбреЛрдореЗрди my.com рдХрд╛рд▓реНрдкрдирд┐рдХ рд╣реИ)
рдпрд╣рд╛рдВ рдХреБрдВрдЬреА A-record рд╣реИ рдФрд░ рдЕрджреНрдпрддрди рд╕рдордп 10 рд╕реЗрдХрдВрдб рд╣реИред

рджреВрд╕рд░реЗ рдмреИрдХрдЕрдк рд╕реНрд▓реЗрд╡ рд╕рд░реНрд╡рд░ рдкрд░, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде /etc/bind/db.test.ru рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдБ:
 $ORIGIN test.ru. $TTL 10 @ IN SOA ns.slave.my.com. admin.my.com. ( 2 ; Serial 10 ; Refresh 10 ; Retry 10 ; Expire 10 ) ; Negative Cache TTL IN NS ns.master.my.com. IN NS ns.slave.my.com. ; @ IN A 10.1.0.1 

SOA рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдореБрдЦреНрдп рдмрд╛рдд рд╕реЗ рдЕрдВрддрд░ред
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдУрд╡рд░рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ
 /etc/init.d/bind9 restart 

рдФрд░ рдХреБрдЫ рдмрд╛рд╣рд░реА рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рд╣рдо test.ru рдбреЛрдореЗрди рдХреЗ рдП-рд░рд┐рдХреЙрд░реНрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, nslookup test.ru рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрд╕рдХрд╛ рдкрддрд╛ 10.1.0.1 рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реИ, рддреЛ рд▓реЙрдЧ рджреЗрдЦреЗрдВред

рдордзреНрдпрд╕реНрдерддрд╛

рд╣рдо рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк - рдордзреНрдпрд╕реНрдерддрд╛ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдпрд╣ рд╕рдм рд╣рд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рдбреАрдПрдирдПрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдЧрд╛ред
рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ SSH, DNS, HTTP рдФрд░ MySQL рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдХрд╛рдо рд▓рд┐рдпрд╛ред рдХреНрд░рд┐рдЯрд┐рдХрд▓, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, HTTP рдФрд░ MySQL рд╕реЗрд╡рд╛рдПрдБ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реЗрд╡рд╛ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рддреЛ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдмреИрдХрдЕрдк рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдИ-рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред
рд╕реЗрд╡рд╛ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдкреЛрд░реНрдЯ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TELNET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рд╛рдЬреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЦреНрдп рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдмреИрдХрдЕрдк рджрд╛рд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдкрд░рд╛рдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рднреА рд▓реЙрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ; рддрдм рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмреИрдХрдЕрдк рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░, рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, DNS рдЬрд╝реЛрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рд╕рднреА рддрд░реНрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЗрд╕реЗ рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 mkdir /var/lock/sync/ 

рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рд░реВрдЯ / рдмрд┐рди / рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ
рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ /root/bin/master.sh DNS, SSH, HTTP, MySQL рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
 #!/bin/bash #        # This script is licensed under GNU GPL version 2.0 or above # --------------------------------------------------------------------- ###     22, 53, 80  3306 ### ###         email ### ######    ###### WORKDIR="/root/bin/" SEMAFOR="/var/lock/sync/master.sem" MAILFILE="/root/bin/master_server_problem.txt" #   master- HOST="10.1.0.1" HTTP="80" SSH="22" MYSQL="3306" DNS="53" PROTOCOLS="SSH HTTP MYSQL DNS" ###  ### EMAIL="admin@my.com" ########## ############ ######       ##### ### Binaries ### TELNET=$(which telnet) ###Change dir### cd $WORKDIR ###Check if already notified### if [ -f $MAILFILE ]; then rm -rf $MAILFILE fi #     ,    if [ -f $SEMAFOR ]; then A=1 else echo "\ DNS 0 SSH 0 HTTP 0 MYSQL 0" > $SEMAFOR fi ### ### for PROTO in $PROTOCOLS do Num_PROTO=`cat $SEMAFOR | grep $PROTO | awk {'print $2'}` ( echo "quit" ) | $TELNET $HOST ${!PROTO} | grep Connected > /dev/null 2>&1 if [ "$?" -ne "1" ]; then #Ok echo "$PROTO PORT CONNECTED" if [ $Num_PROTO -ne "0" ]; then # !=0 if [ $Num_PROTO = "3" ]; then # ==3 echo "$PROTO PORT CONNECTING, AVALIBLE on server $HOST \n" >> $MAILFILE fi OLD_Line="$PROTO $Num_PROTO" NEW_Line="$PROTO 0" sed -i -e "s/$OLD_Line/$NEW_Line/g" $SEMAFOR fi else #Connection failure if [ $Num_PROTO -ne "3" ]; then if [ $Num_PROTO = "2" ]; then # ==2 send notification echo "$PROTO PORT NOT CONNECTING, FAILED on server $HOST \n" >> $MAILFILE fi OLD_Line="$PROTO $Num_PROTO" NEW_Line="$PROTO $(($Num_PROTO+1))" sed -i -e "s/$OLD_Line/$NEW_Line/g" $SEMAFOR fi fi done ###Send mail notification after 2 failed check### #   MUTT      SMTP- 10.6.6.6   #     if [ -f $MAILFILE ]; then /usr/bin/mutt -x -e "set smtp_url=smtp://10.6.6.6" -e "set from="admin@my.com"" -s "Server problem" $EMAIL < $MAILFILE fi 


рджреВрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ /root/bin/slave.sh рдмреИрдХрдЕрдк рджрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ
 #!/bin/bash #        # This script is licensed under GNU GPL version 2.0 or above # --------------------------------------------------------------------- ###     22, 53, 80  3306 ### ###         email ### ######    ###### WORKDIR="/root/bin/" SEMAFOR="/var/lock/sync/slave.sem" MAILADMIN=0 MAILFILE="/root/bin/slave_server_problem.txt" HOST="10.2.0.2" HTTP="80" SSH="22" MYSQL="3306" DNS="53" PROTOCOLS="SSH HTTP MYSQL DNS" ###  ### EMAIL="admin@my.com" ########## ######       ##### ### Binaries ### TELNET=$(which telnet) ###Change dir### cd $WORKDIR ###Check if already notified### if [ -f $MAILFILE ]; then rm -rf $MAILFILE fi if [ -f $SEMAFOR ]; then A=1 else echo "\ DNS 0 SSH 0 HTTP 0 MYSQL 0" > $SEMAFOR fi ### SSH### for PROTO in $PROTOCOLS do Num_PROTO=`cat $SEMAFOR | grep $PROTO | awk {'print $2'}` ( echo "quit" ) | $TELNET $HOST ${!PROTO} | grep Connected > /dev/null 2>&1 if [ "$?" -ne "1" ]; then #Ok echo "$PROTO PORT CONNECTED" if [ $Num_PROTO -ne "0" ]; then # !=0 if [ $Num_PROTO = "3" ]; then # ==3 echo "$PROTO PORT CONNECTING, AVALIBLE on server $HOST \n" >> $MAILFILE fi OLD_Line="$PROTO $Num_PROTO" NEW_Line="$PROTO 0" sed -i -e "s/$OLD_Line/$NEW_Line/g" $SEMAFOR fi else #Connection failure if [ $Num_PROTO -ne "3" ]; then if [ $Num_PROTO = "2" ]; then # ==2 send notification echo "$PROTO PORT NOT CONNECTING, FAILED on server $HOST \n" >> $MAILFILE fi OLD_Line="$PROTO $Num_PROTO" NEW_Line="$PROTO $(($Num_PROTO+1))" sed -i -e "s/$OLD_Line/$NEW_Line/g" $SEMAFOR fi fi done ###Send mail notification after 2 failed check### #   MUTT      SMTP- 10.6.6.6   #     if [ -f $MAILFILE ]; then /usr/bin/mutt -x -e "set smtp_url=smtp://10.6.6.6" -e "set from="admin@my.com"" -s "Server problem" $EMAIL < $MAILFILE fi 

рдпреЗ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╕рдорд╛рди рд╣реИрдВ, рджреЛ рдЪрд░ $ HOST рдФрд░ $ SEMAFOR рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рдПрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рддреАрд╕рд░реА рдлрд╝рд╛рдЗрд▓ /root/bin/compare.sh рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдФрд░ DNS рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
 #!/bin/bash #        # This script is licensed under GNU GPL version 2.0 or above # --------------------------------------------------------------------- FILE_MASTER="/var/lock/sync/master.sem" FILE_SLAVE="/var/lock/sync/slave.sem" HOST_MASTER="10.1.0.1" HOST_SLAVE="10.2.0.2" DNSFILE="/etc/bind/db.test.ru" LOG="/var/log/dns_rewrite.log" PROTOCOLS="HTTP MYSQL" MASTER_COL=0 SLAVE_COL=0 COL=0 for PROTO in $PROTOCOLS do COL=$(($COL + 1)) Master_PROTO=`cat $FILE_MASTER | grep $PROTO | awk {'print $2'}` MASTER_COL=$(($MASTER_COL + $Master_PROTO)) Slave_PROTO=`cat $FILE_SLAVE | grep $PROTO | awk {'print $2'}` SLAVE_COL=$(($SLAVE_COL + $Slave_PROTO)) done MAX_COL=$(($COL * 3)) if [ $MASTER_COL = $MAX_COL ]; then # ==6 if [ $SLAVE_COL = "0" ]; then #==0 #    Slave grep $HOST_MASTER $DNSFILE if [ "$?" -ne "1" ]; then #ok, rewrite sed -i -e "s/$HOST_MASTER/$HOST_SLAVE/g" $DNSFILE echo "Rewrite DNS to $HOST_SLAVE" >> $LOG /etc/init.d/bind9 restart fi fi else # check master if [ $MASTER_COL = "0" ]; then #==0 grep $HOST_SLAVE $DNSFILE if [ "$?" -ne "1" ]; then #ok, rewrite sed -i -e "s/$HOST_SLAVE/$HOST_MASTER/g" $DNSFILE echo "Rewrite DNS to $HOST_MASTER" >> $LOG /etc/init.d/bind9 restart fi else if [ $SLAVE_COL = "0" ]; then #==0 #    Slave grep $HOST_MASTER $DNSFILE if [ "$?" -ne "1" ]; then #ok, rewrite sed -i -e "s/$HOST_MASTER/$HOST_SLAVE/g" $DNSFILE echo "Rewrite DNS to $HOST_SLAVE" >> $LOG /etc/init.d/bind9 restart fi fi fi fi 

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЗрди рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ /root/bin/dnswrite.sh рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
 #!/bin/bash #    /root/bin/master.sh #   SLAVE /root/bin/slave.sh #       /root/bin/compare.sh 

рдЗрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВ
 chmod +x /root/bin/*.sh 

рдФрд░ рдХрд╛рд░реНрдп рдХреЛ CRON рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ crontab -e рд╣рд░ рдорд┐рдирдЯ рд╢реБрд░реВ рд╣реЛ:
 */1 * * * * /root/bin/dnswrite.sh /dev/null 2>&1 


рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реЗрдЯ рд╣реИ!
рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгреА рд╕реБрдирдиреЗ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

Source: https://habr.com/ru/post/In174713/


All Articles