āĻšā§āϝāĻžāϞ⧠āϏāĻŦāĻžāĻāĻā§, āĻšāĻžāĻŦā§āϰā§āϤ⧠āĻāĻāĻŋ āĻāĻŽāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻ āĻāĻŋāĻā§āĻāϤāĻžāĨ¤ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ -āĻŽāĻžāύāĻ āĻāĻĒāĻžāϝāĻŧā§ āĻāĻāĻāĻŋ āĻŦāĻšāĻŋāϰāĻžāĻāϤ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϏāϰāĻā§āĻāĻžāĻŽ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧā§ āϞāĻŋāĻāϤ⧠āĻāĻžāĻāĨ¤ āĻ -āĻŽāĻžāύāĻ āĻŦāϞāϤ⧠āĻā§ āĻŦā§āĻāĻžāϝāĻŧ: āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻā§āώā§āϤā§āϰā§, āĻāĻāĻāĻŋ āĻŦāĻžāĻšā§āϝāĻŋāĻ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§ āϏāϰāĻā§āĻāĻžāĻŽ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ:
- āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻžāĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻŦāĻž āϝāĻĻāĻŋ āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋ āĻāĻžāϰāĻ NAT āĻāϰ āĻĒāĻŋāĻāύ⧠āĻĨāĻžāĻā§ āϤāĻŦā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāĻāĻĒāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ "āĻĢāϰā§āϝāĻŧāĻžāϰā§āĻĄ āĻāϰāĻž" āĻĒā§āϰā§āĻāĨ¤
- āĻāĻžāύā§āϞ (āĻĒāĻŋāĻĒāĻŋāĻāĻŋāĻĒāĻŋ/OpenVPN/L2TP+IPSec, āĻāϤā§āϝāĻžāĻĻāĻŋ) āĻā§āύā§āĻĻā§āϰā§āϝāĻŧ āύā§āĻĄā§, āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ āĻšāĻŦā§āĨ¤
āĻ āϤāĻāĻŦ, āĻāĻĒāύāĻžāϰ "āĻāĻŽāĻžāϰ āĻŦāĻžāĻāĻ" āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§ āϝāĻāύ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ āύāϝāĻŧ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ:
- āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋ NAT āĻāϰ āĻĒāĻŋāĻāύ⧠āĻ āĻŦāϏā§āĻĨāĻŋāϤ āĻāĻŦāĻ āϏāĻžāϧāĻžāϰāĻŖ http (āĻĒā§āϰā§āĻ 80) āĻŦā§āϝāϤā§āϤ, āϏāĻŦāĻāĻŋāĻā§ āĻŦāύā§āϧ āϰāϝāĻŧā§āĻā§āĨ¤ āĻŦāĻĄāĻŧ āĻĢā§āĻĄāĻžāϰā§āϞ āĻāϰā§āĻĒā§āϰā§āĻ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻāĻŋ āĻāĻāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāĨ¤ āϤāĻžāϰāĻž āĻĒā§āϰā§āĻ āύāĻŋāĻŦāύā§āϧāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠āĻāĻāύāĻ āύāϝāĻŧ, āĻĻā§āϰā§āϤ āύāϝāĻŧ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āύāϝāĻŧāĨ¤
- āĻ āϏā§āĻĨāĻŋāϰ āĻāĻŦāĻ/āĻ āĻĨāĻŦāĻž "āϏāĻāĻā§āϰā§āĻŖ" āϝā§āĻāĻžāϝā§āĻ āĻā§āϝāĻžāύā§āϞāĨ¤ āĻāĻŽ āĻāϤāĻŋ, āĻā§āϰāĻŽāĻžāĻāϤ āĻā§āώāϤāĻŋāĨ¤ āĻāĻāĻāĻŋ āĻāĻžāύā§āϞ āϏāĻāĻāĻ āĻŋāϤ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦā§āϝāĻĨāĻž āĻāĻŦāĻ āĻšāϤāĻžāĻļāĻžāĨ¤
- āĻāĻāĻāĻŋ āĻŦā§āϝāϝāĻŧāĻŦāĻšā§āϞ āϝā§āĻāĻžāϝā§āĻ āĻā§āϝāĻžāύā§āϞ, āϝā§āĻāĻžāύ⧠āĻāĻā§āώāϰāĻŋāĻ āĻ āϰā§āĻĨā§ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽā§āĻāĻžāĻŦāĻžāĻāĻ āĻāĻŖāύāĻž āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϏā§āϝāĻžāĻā§āϞāĻžāĻāĻ āϝā§āĻāĻžāϝā§āĻāĨ¤ āĻĒā§āϞāĻžāϏ āĻĻā§āϰā§āĻ āĻŦāĻŋāϞāĻŽā§āĻŦ āĻāĻŦāĻ āĻāĻāĻāĻŋ "āϏāĻāĻā§āϰā§āĻŖ" āĻŦā§āϝāĻžāύā§āĻĄāĨ¤
- āĻāĻŽāύ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋ āϝāĻāύ āĻāĻĒāύāĻžāĻā§ āĻĒā§āϰāĻā§āϰ āĻĒāϰāĻŋāĻŽāĻžāĻŖā§ āĻā§āĻ āϰāĻžāĻāĻāĻžāϰāĻā§āϞāĻŋāĻā§ "āĻāĻžāĻāϞ" āĻāϰāϤ⧠āĻšāĻŦā§, āϝāĻžāϰ āĻāĻĒāϰ, āĻāĻāĻĻāĻŋāĻā§, āĻāĻĒā§āύāĻāϝāĻŧāĻžāϰā§āĻ/āϞā§āĻĄ āĻā§āώāĻŽāϤāĻžāĻā§āϞāĻŋ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāϤ⧠āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻ āύā§āϝāĻĻāĻŋāĻā§, āϰāĻžāĻāĻāĻžāϰā§āϰ āϏāĻāϏā§āĻĨāĻžāύāĻā§āϞāĻŋ (āĻŽā§āĻŽāϰāĻŋ) āϝāĻĨā§āώā§āĻ āύāϝāĻŧāĨ¤ āϏāĻŦ āĻāĻŋāĻā§āϰ āĻāύā§āϝ.
āύā§āĻ āύāĻŽā§āĻŦāϰ āĻŦāĻžāϰ āϰāĻžāĻāĻāĻžāϰā§āϰ USB āĻĒā§āϰā§āĻā§ āĻāĻāĻāĻŋ āĻĢā§āϞā§āϝāĻžāĻļ āĻĄā§āϰāĻžāĻāĻ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻāĻŦāĻ āϰāĻžāĻāĻāĻžāϰā§āϰ āĻŽā§āĻŽāϰāĻŋ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāϤ⧠āĻāĻĒāύāĻžāĻā§ āĻā§ āĻŦāĻžāϧāĻž āĻĻā§āϝāĻŧ?
āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ, āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻžāĻā§āϞāĻŋ āϏāĻžāĻŽāĻā§āϰāĻŋāĻāĻāĻžāĻŦā§ āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻŦā§āϝāϝāĻŧā§āϰ āĻāύā§āϝ, āϤāĻŦā§ āĻāĻāύāĻ āĻāĻāύāĻ āĻĢāϰā§āĻŽ āĻĢā§āϝāĻžāĻā§āĻāϰāĻāĻŋāĻ āĻāĻāĻāĻŋ āĻŽā§āϞ āĻā§āĻŽāĻŋāĻāĻž āĻĒāĻžāϞāύ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϏāĻžāĻāĻā§ āĻāĻāĻāĻŋ TP-Link ML3020 āϰāϝāĻŧā§āĻā§, āĻāĻāĻŋāϰ āĻāĻāĻŽāĻžāϤā§āϰ āĻāĻāĻāϏāĻŦāĻŋ āĻĒā§āϰā§āĻāĻāĻŋ āĻāĻāĻāĻŋ 2G/3G āĻŽāĻĄā§āĻŽā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ, āĻāĻ āϏāĻŽāϏā§āϤ āĻāĻŋāĻā§ āĻā§āĻ āĻĒā§āϞāĻžāϏā§āĻāĻŋāĻā§āϰ āĻā§āϏ⧠āĻŽā§āĻĄāĻŧāĻžāύ⧠āĻšāϝāĻŧ āĻāĻŦāĻ āĻā§āĻĨāĻžāĻ āĻāĻāĻā§, āĻāĻāĻā§ (āĻŽāĻžāϏā§āĻā§āϰ āĻāĻĒāϰ) āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻĻā§āϰā§, āĻ āύā§āĻ āĻĻā§āϰ⧠(āĻā§āώā§āϤā§āϰā§, āύāĻŋāĻāĻāϤāĻŽ āĻŽā§āĻŦāĻžāĻāϞ āĻ āĻĒāĻžāϰā§āĻāϰ āĻŦā§āϏ āϏā§āĻā§āĻļāύ āĻĨā§āĻā§ 30 āĻāĻŋāĻŽāĻŋ)āĨ¤ āĻšā§āϝāĻžāĻ, āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ USB āĻšāĻžāĻŦ āĻĒā§āϞāĻžāĻ āĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻĒā§āϰā§āĻā§āϰ āϏāĻāĻā§āϝāĻž āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāĻŋāύā§āϤ⧠āĻ āĻāĻŋāĻā§āĻāϤāĻž āĻĻā§āĻāĻžāϝāĻŧ āϝ⧠āĻāĻāĻŋ āĻāώā§āĻāĻāϰ āĻāĻŦāĻ āĻ āĻŦāĻŋāĻļā§āĻŦāϏā§āϤāĨ¤
āϏā§āϤāϰāĻžāĻ, āĻāĻŽāĻŋ āĻāĻĒāύāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻāĻŽāĻžāϰ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāĻāĻŋ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻāĻŋ: âāĻŦāĻšā§ āĻŦāĻšā§ āĻĻā§āϰ⧠āĻā§āĻĨāĻžāĻ, āĻāĻ āĻŦā§āϝāĻā§āϤāĻŋāϰ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖā§ āĻāĻāĻāĻŋ āĻ āϤā§āϝāύā§āϤ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ, āύāĻŋāĻāϏāĻā§āĻ āĻāĻŦāĻ āĻā§āĻ āϰāĻžāĻāĻāĻžāϰ āϰāϝāĻŧā§āĻā§āĨ¤ LinuxāĻĻāĻŋāύ⧠āĻ āύā§āϤāϤ āĻāĻāĻŦāĻžāϰ āĻāĻāĻž āĻāĻžāύāĻž āĻāϰā§āϰāĻŋ āϝ⧠āĻāĻāĻŋ "āϏāĻāϞ" āĻāĻā§ āĻāĻŦāĻ āĻĒā§āϰāϝāĻŧā§āĻāύ⧠āĻāĻā§ āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāύ⧠āϝā§āϤ⧠āĻĒāĻžāϰā§, āϝā§āĻŽāύ, "āĻĒā§āϰāĻŋāϝāĻŧ, āϰāĻŋāĻŦā§āĻ āĻāϰā§!"
āĻāϏā§āύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻĻāĻŋāĻā§ āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāĻ:
1) āϰāĻžāĻāĻāĻžāϰā§āϰ āĻĻāĻŋāĻā§, āĻā§āϰāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§, āĻĒā§āϰāϤāĻŋ 5/10/1440 āĻŽāĻŋāύāĻŋāĻā§, āĻŦāĻž āϝāĻāύāĻ āĻāĻĒāύāĻŋ āĻāĻžāύ, āĻāĻĒāύāĻžāĻā§ wget āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāĻāĻāĻŋ HTTP āĻ āύā§āϰā§āϧ āĻĒāĻžāĻ āĻžāϤ⧠āĻšāĻŦā§, āĻ āύā§āϰā§āϧā§āϰ āĻĢāϞāĻžāĻĢāϞ āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§, āĻĢāĻžāĻāϞāĻāĻŋāĻā§ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāϤ⧠āĻšāĻŦā§ , āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻžāϞāĻžāύāĨ¤
āĻāĻŽāĻžāϰ āĻā§āϰāύ āϞāĻžāĻāύ āĻāĻ āĻŽāϤ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāϝāĻŧ:
āĻĢāĻžāĻāϞ /etc/crontabs/root:
*/5 * * * * wget "http://xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php?u=user&p=password" -O /tmp/wa.sh && chmod 777 /tmp/wa.sh && /tmp/wa.sh
, āϝā§āĻāĻžāύā§:
xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai āĻāĻŽāĻžāϰ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻĄā§āĻŽā§āĻāύāĨ¤ āĻāĻŽāĻžāĻā§ āĻāĻāύāĻ āύā§āĻ āĻāϰāϤ⧠āĻĻāĻŋāύ: āĻšā§āϝāĻžāĻ, āĻāĻĒāύāĻŋ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāύāĻž āĻāϞā§āϞā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āϰāĻžāĻā§āϝ āĻĒāϰā§āϝāύā§āϤ āĻāĻāĻŋ āĻāϰāϤāĻžāĻŽ, āϏāĻāĻā§āϰāĻžāĻŽā§āϰ āĻāĻāĻāĻŋ āϧāĻžāϰā§āĻŽāĻŋāĻ āĻāĻŦā§āĻā§, āĻāĻŽāĻŋ āĻŦāϞāĻŦ, āĻāĻŽāĻŋ āĻāĻžāύāĻŋ āύāĻž, āϏāĻŋāĻāĻšā§āϰ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻ
āĻŦāϰā§āĻĻā§āϧ āĻĄāĻŋāĻāĻŋāĻāĻžāϞ āĻŽāĻšāĻžāϏāĻžāĻāϰ āĻāĻŦāĻ āĻāĻŽāĻžāĻāύ "āĻŽā§āĻ" āĻāϰ āĻāĻžāĻāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āϰāϤā§āĻā§ āĻĄā§āĻŽā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϝāĻĻāĻŋ āĻāĻ āϧāϰāύā§āϰ āĻāĻāύāĻž āĻāĻā§, āĻāĻĒāύāĻŋ āϏāĻšāĻā§āĻ āĻāĻāĻāĻŋ āĻŦā§āϝāĻžāĻāĻāĻĒ āĻā§āϞāĻžāĻāĻĄ āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āĻĒāĻžāϰā§āύ, āĻĄā§āĻŽā§āύāĻāĻŋāĻā§ āĻāĻāĻŋāϤ⧠āĻĒā§āύāĻāύāĻŋāϰā§āĻĻā§āĻļ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāϏ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻĒā§āύāϰā§āĻĻā§āϧāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
a.php āĻšāϞ āϏāĻžāϰā§āĻāĻžāϰ-āϏāĻžāĻāĻĄ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§āϰ āύāĻžāĻŽāĨ¤ āĻšā§āϝāĻžāĻ, āĻāĻŽāĻŋ āĻāĻžāύāĻŋ āϝ⧠āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻāĻŦāĻ āĻĢāĻžāĻāϞā§āϰ āύāĻžāĻŽ āĻāĻāĻ āĻ
āĻā§āώāϰ āĻĻāĻŋāϝāĻŧā§ āύāĻžāĻŽāĻāϰāĻŖ āĻāϰāĻž āĻā§āϞ... āĻāĻŽāĻŋ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻ āϝ⧠āĻāĻāĻāĻžāĻŦā§ āĻ
āύā§āϰā§āϧ āĻĒāĻžāĻ āĻžāύā§āϰ āϏāĻŽāϝāĻŧ āĻāĻŽāϰāĻž āĻāϝāĻŧā§āĻāĻāĻŋ āĻŦāĻžāĻāĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŋ :)
u - āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āύāĻžāĻŽ, āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āϞāĻāĻāύ
p - āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ
"-O /tmp/wa.sh" āĻšāϞ āϰāĻŋāĻŽā§āĻ āϰāĻžāĻāĻāĻžāϰā§āϰ āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āϝā§āĻāĻžāύ⧠āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āϰāĻŋāĻŦā§āĻ āĻāĻŽāĻžāύā§āĻĄ, āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāĻŦā§ā§ˇ
āύā§āĻ āύāĻŽā§āĻŦāϰ āĻĻā§āĻ: āĻāĻšāĻš, āĻā§āύ āĻāĻŽāϰāĻž wget āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻžāϰā§āϞ āύāĻž āĻāϰāĻŋ, āĻāĻžāϰāĻŖ āĻāĻžāϰā§āϞ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻĒāύāĻŋ https āĻ āύā§āϰā§āϧ āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰā§āύ GET āĻĻāĻŋāϝāĻŧā§ āύāϝāĻŧ, POST āĻĻāĻŋāϝāĻŧā§? āĻāĻšāĻš āĻāĻžāϰāĻŖ, āĻĒā§āϰāĻžāύ⧠āĻā§āϤā§āĻā§āϰ āĻŽāϤ⧠"NE āĻŦāϝāĻŧāĻžāĻŽā§ āĻāϰā§āĻšāĻŖ āĻāϰā§!" āĻāĻžāϰā§āϞ-āĻ āĻĒā§āϰāĻžāϝāĻŧ 2MB āĻāĻāĻžāϰā§āϰ āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϰāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ āĻāĻžāϰāĻŖā§ āĻāĻāĻŋ āĻ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āϝ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ TP-LINK ML3020 āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻŋāϤā§āϰ āĻāĻāϤā§āϰ āĻāϰāϤ⧠āϏāĻā§āώāĻŽ āĻšāĻŦā§āύ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒāĨ¤ āĻāĻŦāĻ wget āϏāĻā§āĻā§ - āĻĻāϝāĻŧāĻž āĻāϰā§.
⧍) āϏāĻžāϰā§āĻāĻžāϰ āϏāĻžāĻāĻĄā§ (āĻāĻŽāĻžāϰ āĻāĻžāĻā§ āĻāĻāĻŋ āĻāĻā§) UbuntuāĻāĻŽāϰāĻž Zabbix āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦāĨ¤ āĻāĻžāϰāĻŖ: āĻāĻŽāĻŋ āĻāĻžāĻ āĻāĻāĻŋ āĻĻā§āĻāϤ⧠āϏā§āύā§āĻĻāϰ (āĻā§āϰāĻžāĻĢ āϏāĻš) āĻāĻŦāĻ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ (āĻāύā§āĻā§āĻā§āϏāĻ āĻŽā§āύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāύā§) āĻšā§āĻāĨ¤ Zabbix-āĻ Zabbix āĻāĻā§āύā§āĻ āύāĻžāĻŽā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻāĻžāϰ āĻĢāĻŋāĻāĻžāϰ āĻāĻā§āĨ¤ āĻāĻŽāϰāĻž āĻāĻ āĻāĻā§āύā§āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ PHP āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāϞ āĻāϰāĻŦāĨ¤ āϏāĻžāϰā§āĻāĻžāϰ, āϝāĻž āĻāĻŽāĻžāĻĻā§āϰ āϰāĻžāĻāĻāĻžāϰāĻāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϏāĻŽāϝāĻŧāĻāĻžāϞā§āϰ āĻŽāϧā§āϝ⧠āύāĻŋāĻŦāύā§āϧāĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞ āĻāĻŋāύāĻž āϏ⧠āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻŦā§āĨ¤ āύāĻŋāĻŦāύā§āϧāύā§āϰ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāϏ āĻāĻŽāĻžāύā§āĻĄ āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻĨā§āϝ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāĻŽāĻŋ "users" āύāĻžāĻŽā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ MySQL āĻā§āĻŦāĻŋāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ āϝāĻžāϰ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤāĻā§āϞāĻŋāϰ āĻŽāϤā§:
CREATE TABLE `users` (
`id` varchar(25) NOT NULL,
`passwd` varchar(25) NOT NULL,
`description` varchar(150) NOT NULL,
`category` varchar(30) NOT NULL,
`status` varchar(10) NOT NULL,
`last_time` varchar(20) NOT NULL, // вŅĐĩĐŧŅ ĐŋĐžŅĐģĐĩĐ´ĐŊĐĩĐŗĐž ŅĐžĐĩдиĐŊĐĩĐŊиŅ
`last_ip` varchar(20) NOT NULL, // IP ĐŋĐžŅĐģĐĩĐ´ĐŊĐĩĐŗĐž ŅĐžĐĩдиĐŊĐĩĐŊиŅ
`last_port` int(11) NOT NULL, // ĐŋĐžŅŅ ĐŋĐžŅĐģĐĩĐ´ĐŊĐĩĐŗĐž ŅĐžĐĩдиĐŊĐĩĐŊиŅ
`task` text NOT NULL, // СадаŅа ĐēĐžŅĐžŅŅŅ ĐŋĐžĐģŅŅаĐĩŅ ŅĐžŅŅĐĩŅ
`reg_task` varchar(150) NOT NULL, // "ŅĐĩĐŗŅĐģŅŅĐŊаŅ" СадаŅа, ĐĩŅĐģи ĐŧŅ ĐˇĐ°Ņ
ĐžŅиĐŧ ŅŅĐžĐąŅ ĐˇĐ°Đ´Đ°Ņа вŅĐŋĐžĐģĐŊŅĐģаŅŅ Đ˛ŅĐĩĐŗĐ´Đ° ĐŋŅи ŅĐĩĐŗĐ¸ŅŅŅаŅии
`last_task` text NOT NULL, // ĐģĐžĐŗ СадаŅ
`response` text NOT NULL, // ŅŅда ĐŋиŅĐĩŅŅŅ ĐžŅвĐĩŅ ŅŅŅŅОКŅŅва
`seq` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
āϏāĻŽāϏā§āϤ āĻāϤā§āϏ āĻāĻāĻžāύ⧠āĻāĻŋāĻ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āĻĨā§āĻā§ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§:
āĻāĻāύ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻāĻā§āϞāĻŋ āϏāĻžāϰā§āĻāĻžāϰā§āϰ āĻĒāĻžāĻļā§ āϰāĻžāĻāĻž āĻšāϝāĻŧā§āĻā§ (āϏā§āĻŦāĻŋāϧāĻžāϰ āĻāύā§āϝ, āϏā§āĻā§āϞāĻŋ /usr/share/zabbix/ āĻĢā§āϞā§āĻĄāĻžāϰ⧠āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§):
a.php āĻĢāĻžāĻāϞ:
<?php
// ĐĐžĐģŅŅаĐĩĐŧ вŅ
ОдĐŊŅĐĩ ĐŋаŅаĐŧĐĩŅŅŅ: иĐŧŅ ĐŋĐžĐģŅСОваŅĐĩĐģŅ, ĐŋаŅĐžĐģŅ Đ¸ ŅООйŅĐĩĐŊиĐĩ ĐžŅ ŅдаĐģĐĩĐŊĐŊĐžĐŗĐž ŅĐžŅŅĐĩŅа
// ĐаŅĐĩĐŧ ĐŊŅĐļĐĩĐŊ message ? ĐŅĐž ŅĐŋĐžŅОй ĐžŅвĐĩŅа ŅĐžŅŅĐĩŅа, ĐŊаĐŋŅиĐŧĐĩŅ ĐĩŅĐģи Đ˛Ņ ĐˇĐ°Ņ
ĐžŅиŅĐĩ ĐŋĐžŅĐŧĐžŅŅĐĩŅŅ ŅОдĐĩŅĐļиĐŧĐžĐĩ ŅаКĐģа ŅĐžŅŅĐĩŅа
$user=$_REQUEST['u'];
$password=$_REQUEST['p'];
$message=$_REQUEST['m'];
// ĐОдĐēĐģŅŅаĐĩĐŧŅŅ Đē ĐŊаŅĐĩĐš йаСĐĩ даĐŊĐŊŅŅ
(MySQL)
$conn=new mysqli("localhost","db_login","db_password","DB_name");
if (mysqli_connect_errno()) {
exit();
}
$conn->set_charset("utf8");
// СдĐĩŅŅ Đ¸ŅĐĩĐŧ ĐŊĐ°Ņ ŅĐžŅŅĐĩŅ Đ˛ ŅайĐģиŅĐĩ ĐąĐ°ĐˇŅ Đ´Đ°ĐŊĐŊŅŅ
$sql_users=$conn->prepare("SELECT task, reg_task, response, last_time FROM users WHERE id=? AND passwd=? AND status='active';");
$sql_users->bind_param('ss', $user, $password);
$sql_users->bind_result($task, $reg_task, $response, $last_time);
$sql_users->execute();
$sql_users->store_result();
if (($sql_users->num_rows)==1){
$sql_users->fetch();
// СдĐĩŅŅ ĐŧŅ ŅĐžŅŅĐĩŅŅ ĐžŅĐŋŅавĐģŅĐĩĐŧ ĐĩĐŗĐž СадаŅи
echo $task;
echo "n";
echo $reg_task;
// Đ˛ĐžŅ ĐˇĐ´ĐĩŅŅ ĐŧŅ ĐŋиŅĐĩĐŧ вŅĐĩĐŧŅ ĐžŅвĐĩŅа и ŅаĐŧ ĐžŅвĐĩŅ ŅĐžŅŅĐĩŅа
$response_history="[".date("Y-m-d H:i")."] ".$message;
// СадаŅŅ ĐžŅĐŋŅавиĐģи, ŅĐĩĐŋĐĩŅŅ ĐŊадО ĐĩĐĩ ŅдаĐģиŅŅ,а ĐŋĐžŅĐģĐĩ ŅдаĐģĐĩĐŊĐ¸Ņ ĐžŅĐŧĐĩŅиŅŅ Đ˛ ĐģĐžĐŗĐ°Ņ
, ŅŅĐž ŅаĐēаŅ-ŅĐž СадаŅа вŅĐŋĐžĐģĐŊĐĩĐŊа
$last_ip=$_SERVER["REMOTE_ADDR"];
$last_port=$_SERVER["REMOTE_PORT"];
$ts_last_conn_time=$last_time;
$sql_users=$conn->prepare("UPDATE users SET task='', seq=1 WHERE (id=?);");
$sql_users->bind_param('s', $user);
$sql_users->execute();
if (strlen($message)>1){
$sql_users=$conn->prepare("UPDATE users SET response=?, seq=1 WHERE (id=?);");
$sql_users->bind_param('ss', $response_history, $user);
$sql_users->execute();
}
// ŅĐĩĐŋĐĩŅŅ ĐŊадО ŅĐžŅ
ŅаĐŊиŅŅ Đ˛ŅĐĩĐŧŅ ŅĐĩĐŗĐ¸ŅŅŅаŅии ĐŋĐžĐģŅСОваŅĐĩĐģŅ, ĐĩĐŗĐž аКĐŋи и ŅООйŅĐĩĐŊиĐĩ ĐžŅ ĐŊĐĩĐŗĐž. ĐĐžĐēа ŅĐžĐģŅĐēĐž ŅООйŅĐĩĐŊиĐĩ
$ts_now=time();
$sql_users=$conn->prepare("UPDATE users SET last_time=?, last_ip=?, last_port=? WHERE (id=?);");
$sql_users->bind_param('ssss', $ts_now, $last_ip, $last_port, $user);
$sql_users->execute();
}
// ĐĩŅĐģи ĐŧŅ ĐŊĐĩ ĐŊаŅĐģи ŅĐžŅŅĐĩŅ Đ˛ ĐŊаŅĐĩĐš йаСĐĩ даĐŊĐŊŅŅ
, иĐģи ĐĩĐŗĐž ŅŅаŅŅŅ "ĐŊĐĩаĐēŅивĐŊŅĐš", ŅĐž ĐĩĐŧŅ ... ĐąŅĐ´ĐĩŅ ĐžŅĐŋŅавĐģĐĩĐŊа ĐēĐžĐŧаĐŊда reboot....
// ĐĐžŅĐĩĐŧŅ ŅаĐē ĐļĐĩŅŅĐžĐēĐž ? ĐĐžŅĐžĐŧŅ ŅŅĐž ŅĐžŅŅĐĩŅŅ Đ¸ĐŊĐžĐŗĐ´Đ° ĐŋŅĐžĐŋадаŅŅ, а ŅŅĐž ĐŧаĐģĐĩĐŊŅĐēиК ŅĐŋĐžŅОй ĐŋŅĐžŅŅиŅŅ "ĐŊОвŅŅ
вĐģадĐĩĐģŅŅĐĩв".
else
{
echo "reboot";
}
$sql_users->close();
?>
Agent.php āĻĢāĻžāĻāϞ (āĻāĻāĻŋ āĻŦāϞāĻž āĻšāϝāĻŧ zabbix āĻāĻā§āύā§āĻā§āϰ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ):
<?php
// ŅаКĐģ Đ°ĐŗĐĩĐŊŅа Zabbix. ĐаĐŊĐŊŅĐš ŅĐēŅиĐŋŅ ĐžĐąŅаŅаĐĩŅŅŅ Đē ŅайĐģиŅĐĩ users и ĐŋĐžĐģŅŅаĐĩŅ "1" ĐĩŅĐģи ŅŅŅŅОКŅŅвО ŅĐĩĐŗĐ¸ŅŅŅиŅОваĐģĐžŅŅ Ņ ĐŧĐžĐŧĐĩĐŊŅа ĐŋĐžŅĐģĐĩĐ´ĐŊĐĩĐŗĐž ОйŅаŅĐĩĐŊиŅ
// user и password - ŅŅĐĩŅĐŊŅĐĩ даĐŊĐŊŅĐĩ ОйОŅŅдОваĐŊиŅ
$user = $argv[1];
$password = $argv[2];
// ĐŋОдĐēĐģŅŅаĐĩĐŧŅŅ Đē ĐŊаŅĐĩĐš йаСĐĩ даĐŊĐŊŅŅ
$conn=new mysqli("localhost","db_user","db_password","db_name");
if (mysqli_connect_errno()) {
exit();
}
$conn->set_charset("utf8");
$sql_users=$conn->prepare("SELECT seq FROM users WHERE id=? AND passwd=? AND status='active';");
$sql_users->bind_param('ss', $user, $password);
$sql_users->bind_result($seq);
$sql_users->execute();
$sql_users->store_result();
// ОйĐŧĐĩĐŊ даĐŊĐŊŅĐŧи ĐŋŅОиŅŅ
ĐžĐ´Đ¸Ņ ŅĐĩŅĐĩС ĐŋĐžĐģĐĩ seq. ĐŅи ŅĐĩĐŗĐ¸ŅŅŅаŅии ĐļĐĩĐģĐĩСĐēа ŅŅĐ°Đ˛Đ¸Ņ Đ´Đ°ĐŊĐŊĐžĐĩ ĐŋĐžĐģĐĩ в "1"
if (($sql_users->num_rows)==1){
$sql_users->fetch();
echo $seq;
}
// ОйĐŊŅĐģŅĐĩĐŧ $seq.
$sql_users=$conn->prepare("UPDATE users SET seq=0 WHERE id=? AND passwd=? AND status='active';");
$sql_users->bind_param('ss', $user, $password);
$sql_users->execute();
$sql_users->close();
?>
āĻ āĻŋāĻ āĻāĻā§, āĻā§āĻĄāĻŧāĻžāύā§āϤ āĻĒāϰā§āϝāĻžāϝāĻŧ: āĻāĻā§āύā§āĻ āύāĻŋāĻŦāύā§āϧāύ āĻāϰāĻž āĻāĻŦāĻ āϏāĻŽāϝāĻŧāϏā§āĻā§ āϝā§āĻ āĻāϰāĻžāĨ¤
āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāύāĻ zabbix āĻāĻā§āύā§āĻ āĻāύāϏā§āĻāϞ āύāĻž āĻāϰ⧠āĻĨāĻžāĻā§āύ, āϤāĻžāĻšāϞā§:
apt-get install zabbix-agent
āĻĢāĻžāĻāϞāĻāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰā§āύ /etc/zabbix/zabbix_agentd.confāĨ¤
āϞāĻžāĻāύ āϝā§āĻ āĻāϰā§āύ:
UserParameter=test,php /usr/share/zabbix/agent.php user password
, āϝā§āĻāĻžāύā§:
āĻĒāϰā§āĻā§āώāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻāĻā§āύā§āĻā§āϰ āύāĻžāĻŽ
"php /usr/share/zabbix/agent.php āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ" - āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϝāĻž āĻĄāĻŋāĻāĻžāĻāϏ āύāĻŋāĻŦāύā§āϧāύ āĻĄā§āĻāĻž āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰā§āĨ¤
āĻāĻžāϰā§āĻ āϝā§āĻ āĻāϰāĻž: zabbix āĻāϝāĻŧā§āĻŦ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻā§āϞā§āύ, āĻŽā§āύ⧠āĻĨā§āĻā§ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύ:
āϏā§āĻāĻŋāĻāϏ -> āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āύā§āĻĄ -> āĻāĻāĻāĻŋ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āύā§āĻĄ āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤ āĻāĻāĻžāύ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻšā§āϏā§āĻ, āĻāϰ āĻā§āϰā§āĻĒ āĻāĻŦāĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻāĻā§āύā§āĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏā§āϰ āύāĻžāĻŽ āĻāϞā§āϞā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āϝāĻĨā§āώā§āĻ:

āĻāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āύā§āĻĄā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻāĻĒāĻžāĻĻāĻžāύ āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻĻā§āĻāĻŋ āĻā§āώā§āϤā§āϰ⧠āĻŽāύā§āϝā§āĻ āĻĻāĻŋāύ: "āĻā§" - āĻāĻāĻŋ āĻ āĻŋāĻ āϏā§āĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϝāĻž āĻāĻŽāϰāĻž /etc/zabbix/zabbix_agentd.conf āĻĢāĻžāĻāϞ⧠āϞāĻŋāĻā§āĻāĻŋāϞāĻžāĻŽ (āĻāĻŽāĻžāĻĻā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž), āĻāĻŦāĻ "āĻāĻĒāĻĄā§āĻ āĻŦā§āϝāĻŦāϧāĻžāύ" - āĻāĻŽāĻŋ āĻāĻāĻŋ 5 āĻŽāĻŋāύāĻŋāĻā§ āϏā§āĻ āĻāϰā§āĻāĻŋ , āĻāĻžāϰāĻŖ āĻāĻŦāĻ āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋāĻ āĻĒā§āϰāϤāĻŋ āĻĒāĻžāĻāĻ āĻŽāĻŋāύāĻŋāĻā§ āĻāĻāĻŦāĻžāϰ āϏāĻžāϰā§āĻāĻžāϰ⧠āύāĻŋāĻŦāύā§āϧāĻŋāϤ āĻšāϝāĻŧāĨ¤

āĻāĻā§āĻāĻž, āĻāϰ āĻāĻāĻāĻŋ āĻā§āϰāĻžāĻĢ āϝā§āĻ āĻāϰāĻž āϝāĻžāĻ. āĻāĻŽāĻŋ āϰā§āύā§āĻĄāĻžāϰāĻŋāĻ āϏā§āĻāĻžāĻāϞ āĻšāĻŋāϏāĻžāĻŦā§ "āĻĢāĻŋāϞ" āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻāĻŋāĻāĨ¤

āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻā§āĻŦ āĻāĻŽ āĻāĻŋāĻā§, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āĻāĻāϰāĻāĻŽ:

āϝā§āĻā§āϤāĻŋāϏāĻā§āĻāϤ āĻĒā§āϰāĻļā§āύā§: "āĻāĻāĻŋ āĻāĻŋ āĻŽā§āϞā§āϝāĻŦāĻžāύ āĻāĻŋāϞ?", āĻāĻŽāĻŋ āĻāϤā§āϤāϰ āĻĻā§āĻŦ: āĻāĻžāϞ, āĻ
āĻŦāĻļā§āϝāĻ, āύāĻŋāĻŦāύā§āϧā§āϰ āĻļā§āϰā§āϤ⧠"āĻāĻāĻāĻŋ āϏāĻžāĻāĻā§āϞ āϤā§āϰāĻŋāϰ āĻāĻžāϰāĻŖ" āĻĻā§āĻā§āύāĨ¤
āϝāĻĻāĻŋ āĻāĻŽāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻā§āϰāĻžāĻĢā§āĻŽā§āϝāĻžāύāĻŋāϝāĻŧāĻžāĻ āĻ
āĻāĻŋāĻā§āĻāϤāĻž āĻĒāĻžāĻ āĻāĻĻā§āϰ āĻāĻā§āϰāĻš āĻāĻžāĻāĻŋāϝāĻŧā§ āϤā§āϞā§, āϤāĻŦā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āύāĻŋāĻŦāύā§āϧāĻā§āϞāĻŋāϤ⧠āĻāĻŽāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĻā§āϰāĻŦāϰā§āϤ⧠āϏāϰāĻā§āĻāĻžāĻŽāĻā§āϞāĻŋāϤ⧠āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāϤ⧠āĻšāϝāĻŧ āϤāĻž āĻŦāϰā§āĻŖāύāĻž āĻāϰāϤ⧠āĻāĻžāĻāĨ¤ āĻāĻŽāϰāĻž āϰāĻžāĻāĻāĻžāϰāĻāĻāϏ (āĻŽāĻŋāĻā§āϰā§āĻāĻŋāĻ) āĻāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻĄāĻŋāĻāĻžāĻāϏāĻā§āϞāĻŋāϰ āĻāύā§āϝ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϏā§āĻāĻŋāĻŽāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰāϤ⧠āĻĒā§āϰā§āĻāĻŋāĨ¤
āĻāϤā§āϏ: www.habr.com
