- рдХрд╕реНрдЯрдо рдкреАрд╕реА рд▓рд┐рдирдХреНрд╕ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рд╕реБрдЬрд╝ 11, рдорд┐рдВрдЯ 16);
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрди рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЗ рд╕рд╛рде рджреВрд░ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпреВрдПрд╕рдмреА рдбреНрд░рд╛рдЗрд╡ рд░реВрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ;
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рд░рд╛рдИрдбрд╕реНрдХреЛрдк / рдлрд╝реНрд░реАрдбреНрд░реЙрдк рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреЛрдИ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред
рдЙрджреНрджреЗрд╢реНрдпреЛрдВ:
- рдпреВрдПрд╕рдмреА рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрдереНрдпреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВ;
- USB рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рддрдереНрдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдВред
рдЖрд╡рд╢реНрдпрдХ рдкреАрдЫреЗ рд╣рдЯрдирд╛ред рдореИрдВ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рдРрд╕реА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рдиреИрддрд┐рдХ рдкрд╣рд▓реБрдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдорд╛рдирдХ рдФрд░ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕реБрд░рдХреНрд╖рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдХрд░реНрдордЪрд╛рд░реА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред
1. рдПрдХ рдпреВрдПрд╕рдмреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрдереНрдп рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдВ
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ udv рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдШрдЯрдирд╛ рдХреЗ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдирд┐рдпрдо рдмрдирд╛рдПрдВ рдЬреЛ USB рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛:
touch /etc/udev/rules.d/usb.rules
Usb.rules рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА:
ACTION=="add", SUBSYSTEM=="block", ENV{ID_BUS}=="usb|mmc|memstick|ieee1394", RUN+="/bin/bash /etc/udev/usb_on.sh %E{ID_SERIAL_SHORT} %E{ID_MODEL} %E{ID_VENDOR}" ACTION=="remove", SUBSYSTEM=="block", ENV{ID_BUS}=="usb|mmc|memstick|ieee1394", RUN+="/bin/bash /etc/udev/usb_off.sh %E{ID_SERIAL_SHORT} %E{ID_MODEL} %E{ID_VENDOR}"
рдЬрд╣рд╛рдВ:
- рдХрд╛рд░реНрд░рд╡рд╛рдИ - рдирд┐рдЧрд░рд╛рдиреА рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ, рдЬреЛрдбрд╝ - рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрд╢рди, рд╣рдЯрд╛ - рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ;
- рдИрдПрдирд╡реА - рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА;
- рдЖрд░рдпреВрдПрди - рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХрд╛рд░реНрд░рд╡рд╛рдИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдИрд╡реЗрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, usb_on.sh рдФрд░ usb_off.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ usb_on.sh рдФрд░ usb_off.sh udev рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
- % E {ID_SERIAL_SHORT} - USB рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░;
- % E {ID_MODEL} - USB рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдореЙрдбрд▓;
- % E {ID_VENDOR} USB рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ usb_on.sh:
/usr/bin/curl -d "host=$(hostname)&serial=$1&name=$2&vendor=$3&file=on&sub=true" --noproxy 10.0.40.16 http://10.0.40.16/usb/input.php
рд╕реНрдХреНрд░рд┐рдкреНрдЯ usb_off.sh:
/usr/bin/curl -d "host=$(hostname)&serial=$1&name=$2&vendor=$3&file=off&sub=true" --noproxy 10.0.40.16 http://10.0.40.16/usb/input.php
рдпреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ 10.0.40.16/usb/input.php рдкрддреЗ рдкрд░ рдПрдХ HTTP POST рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ ( noproxy рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ 10.0.40.16 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЬрд╛рдП)ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рдЗрд╕ POST рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
- рд╣реЛрд╕реНрдЯ - рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реЛрд╕реНрдЯрдирд╛рдо рдХрдорд╛рдВрдб рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ;
- USB рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╕реАрд░рд┐рдпрд▓ рдХреНрд░рдорд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ (% E {ID_SERIAL_SHORT})
- рдирд╛рдо - USB рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдореЙрдбрд▓ (% E {ID_MODEL})
- рд╡рд┐рдХреНрд░реЗрддрд╛ - USB рдбрд┐рд╡рд╛рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ (% E {ID_VENDOR})
- рдлрд╝рд╛рдЗрд▓ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИред рдСрди - рдХрдиреЗрдХреНрд╢рди, рдСрдл - рдбрд┐рд╕рдХрдиреЗрдХреНрд╢рди (рдлрд╝рд╛рдЗрд▓ - рдлрд╝реАрд▓реНрдб рдХрд╛ рдирд╛рдо рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдкрд░ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рднреА рдпрд╣рд╛рдБ рджрд░реНрдЬ рдХреА рдЬрд╛рдПрдЧреА)
- рдЙрдк = рд╕рддреНрдп - рдПрдХ рдмрдЯрди рдХреА рдирдХрд▓ рдПрдХ рд╡реЗрдм рдлреЙрд░реНрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
2.Server рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЪрд▓ рд░рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ usb_on.sh рдФрд░ usb_off.sh рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡реЗрдм рдлрд╝реЙрд░реНрдо рдФрд░ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рд╣реЛрддрд╛ рд╣реИред
<form action="" method="post" enctype="multipart/form-data"> <input type="submit" name="sub" value=""> <input type="text" name="host" maxlength=255 size=100> <input type="text" name="serial" maxlength=255 size=100> <input type="text" name="name" maxlength=255 size=100> <input type="text" name="vendor" maxlength=255 size=100> <textarea id="file" name="file"></textarea> </form>
рд╣реИрдВрдбрд▓рд░ рдПрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ usb рдЯреЗрдмрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
mysql_query("INSERT INTO `usb` (`id`, `date`, `host`, `ip`, `serial`, `name`, `vendor`, `file`) VALUES (NULL, '$time', '$_POST[host]', '$_SERVER[REMOTE_ADDR]', '$_POST[serial]', '$_POST[name]', '$_POST[vendor]', '$_POST[file]')");
рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛:
CREATE TABLE IF NOT EXISTS `usb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` bigint(20) NOT NULL, `ip` varchar(15) COLLATE utf8_bin NOT NULL, `host` varchar(50) COLLATE utf8_bin NOT NULL, `serial` varchar(100) COLLATE utf8_bin NOT NULL, `name` varchar(100) COLLATE utf8_bin NOT NULL, `vendor` varchar(100) COLLATE utf8_bin NOT NULL, `file` text COLLATE utf8_bin, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
3. рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди рдХреА рдирд┐рдЧрд░рд╛рдиреА
рдХрд┐рд╕реА рдХрдиреЗрдХреНрдЯреЗрдб рдорд╛рдзреНрдпрдо рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд┐рдП рдЧрдП рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЧрдИ рдереА:
touch /var/tmp/usb.check # check=1 while [ $check ] # do if [ -f /var/tmp/usb.check ] # then ACCESS='' # CREATE='' MODIFY='' # , /media , , , , /var/tmp/usb.check ACCESS=`find /media -anewer /var/tmp/usb.check -type f` CREATE=`find /media -cnewer /var/tmp/usb.check -type f` MODIFY=`find /media -newer /var/tmp/usb.check -type f` if [ ! -z "$ACCESS" ] then ACCESS="access "$ACCESS # /usr/bin/curl -d "host=$(hostname)&serial=$2&name=$3&vendor=$4&file=$ACCESS&sub=true" --noproxy 10.0.40.16 http://10.0.40.16/usb/input.php fi if [ ! -z "$CREATE" ] then CREATE="create "$CREATE /usr/bin/curl -d "host=$(hostname)&serial=$2&name=$3&vendor=$4&file=$CREATE&sub=true" --noproxy 10.0.40.16 http://10.0.40.16/usb/input.php fi if [ ! -z "$MODIFY" ] then MODIFY="modify "$MODIFY /usr/bin/curl -d "host=$(hostname)&serial=$2&name=$3&vendor=$4&file=$MODIFY&sub=true" --noproxy 10.0.40.16 http://10.0.40.16/usb/input.php fi fi touch /var/tmp/usb.check # sleep 5 # done
рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдЯреЛрд░рди рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рддреА рд╣реИред
рд╕рд╣реЗрдЬреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЧрдИ рдереА рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдФрд░ рдЪрдпрдирд┐рдд рдкреАрд╕реА рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдЪрдпрди рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рд╕реВрдЪрдирд╛ рдЙрддреНрдкрд╛рджрди:
4. рдкреАрд╕реА рдлреИрд▓ рдЧрдпрд╛
рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреАрд╕реА рд╣реИрдВ, рдпрд╣ рдЕрд░реНрдз-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрд░реНрдерд╛рддреН: рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдПрдХ рдлрд╛рдЗрд▓ рд╕реЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдкреАрд╕реА рдХреА рдПрдХ рд╕реВрдЪреА рдкрдврд╝рддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ sshpass (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП) рдФрд░ рдПрд╕рд╕реАрдкреА (рдирдХрд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, StrictHostKeyChecking рдирд┐рд░реНрджреЗрд╢ рдХреЛ / etc / ssh / ssh_config рдореЗрдВ рдмрджрд▓реЗрдВ:
StrictHostKeyChecking no
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ ssh рдХреАрдЬрд╝ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реВрдЪреА рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рдПред
рд╡рд┐рддрд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА:
#!/bin/bash while read line; do array[$index]="$line" index=$(($index+1)) done < hosts.conf for ((a=0; a < ${#array[*]}; a++)) do remote=`echo ${array[$a]} | awk '{ print $1 }'` echo "$remote begin"; /usr/bin/sshpass -p "root_password" /usr/bin/scp /home/user/usb_mon/usb.rules admin@$remote:/etc/udev/rules.d/usb.rules /usr/bin/sshpass -p "root_password" /usr/bin/scp /home/user/usb_mon/*.sh admin@$remote:/etc/udev/ /usr/bin/sshpass -p "root_password" /usr/bin/scp /home/user/usb_mon/boot.local admin@$remote:/etc/rc.d/boot.local echo "$remote end"; done
рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдкреАрд╕реА рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реЙрдЧ рдФрд░ рдмрд╛рдж рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
./deploy.sh &> deploy.log &
рдкреБрдирд╢реНрдЪред рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛
рдХреНрдпрд╛ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- POST рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╕реВрдЪрдирд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рд╕реБрд░рдХреНрд╖рд╛
- рд╕реЗрд╡рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд▓реЙрдЧрд┐рдВрдЧ рдирд┐рдХрд╛рд▓реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Thumbs.db)
- рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐, рдЬрд┐рди рдкрд░ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЧрдИ рдереАред