ΠΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SSH
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π²Π°Ρ ΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°: server1.example.com, server2.example.com ΠΈ server3.example.com. ΠΠ° Π½ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅Π±ΡΠ°ΠΉΡΠΎΠ², ΠΈ Π²Π°ΠΌ ΡΡΡΠ΄Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΉΡ www.everythingsysadmin.com β Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΠ΅ΡΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅? ΠΡ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Π½Π° ΡΡΠ΅ΡΡΠ΅ΠΌ, Π½ΠΎ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΡΡΠΎ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ»ΠΈ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΠΈΠ·-Π·Π° Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ΅ ΡΡΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ? ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎΡΡΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΈΠΌΡ Ρ ΠΎΡΡΠ° Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ SSH! ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ssh www.everythingsysadmin.com, ΠΈ Π²Ρ ΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ΡΡ Π½Π° Π½ΡΠΆΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΎ Π²Ρ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ Π»ΡΠ΄ΠΈ Π·Π°Π±ΡΠ²Π°ΡΡ ΠΎ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ!
Π£ ΠΊΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ Π·Π°ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²? Π’Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ°ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
ΠΠ° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° make! ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΈΡΠ°ΡΡ Π΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π΅ΡΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
β₯ ΠΠΎΠΌΠ°Π½Π΄Π° make ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΌΠΎΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ΅Π½Ρ. Π― ΡΠ»ΡΡΠ°Π», ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΎΠΆΠ΅ ΡΡΠΈΡΠ°ΡΡ Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ!
Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ make Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ Π±ΡΠ»ΠΎ ΠΌΡΠΆΠ΅ΠΉ Ρ ΠΠ»ΠΈΠ·Π°Π±Π΅Ρ Π’Π΅ΠΉΠ»ΠΎΡ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π»ΠΈΡΡ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Ρ Π΅Π΅ Π²Π°ΠΌ. (ΠΡΠΎΡΠΈΡΠ°Π² ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π΅ Π³Π»Π°Π²Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ make, Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ 99 % ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°Π΄Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ Π² 10 ΡΠ°Π· Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π·Π½Π°ΡΡ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ.)
ΠΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ makeΠΠΎΠΌΠ°Π½Π΄Π° make ΡΠΈΡΠ°Π΅Ρ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π²Π΅ΡΡΠΌΠ° ΡΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Makefile. Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ make, ΡΡΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π΅Π»Π°ΡΡ.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ:
whole: partA partB partC
ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΠΎΠ·Π΄Π°ΡΡΠ°Ρ whole
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎΠΈΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ°ΠΉΠ»Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ.[6] Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΉΠ» whole, ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ partA, partB ΠΈ partC. ΠΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ whole.
ΠΡΠΈΠ²Π΅Π΄Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
aliases.db: aliases
newaliases
@echo Done updating aliases
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» aliases Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, ΠΊΠΎΠΌΠ°Π½Π΄Π° newaliases ΡΠ΅Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» aliases.db. Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«Done updating aliasesΒ» (ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ aliases).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²ΡΠΎΡΠ°Ρ ΠΈ ΡΡΠ΅ΡΡΡ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Π½Ρ Ρ ΠΎΡΡΡΡΠΏΠΎΠΌ. ΠΡΡΡΡΠΏ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΠ°Π±ΡΠ»ΡΡΠΈΠ΅ΠΉ, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ². ΠΠΎΡΠ΅ΠΌΡ? ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ make Ρ ΠΎΡΠ΅Π» Π½Π°ΠΊΠ°Π·Π°ΡΡ ΠΌΠ΅Π½Ρ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠΎΠΏΡΡΠΊΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠ΅ΠΉ ΡΠ°Π±ΡΠ»ΡΡΠΈΡ Π² ΠΏΡΠΎΠ±Π΅Π»Ρ. ΠΠΏΡΠΎΡΠ΅ΠΌ, Ρ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ ΡΡΠΎ Π½Π° ΡΠ²ΠΎΠΉ ΡΡΠ΅Ρ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ make:
Server1# make aliases.db
newaliases
Done updating aliases
Server1#
ΠΠΎΡ ΡΠ°ΠΊ! ΠΠΎΠΌΠ°Π½Π΄Π° make ΠΏΡΠΎΡΠΈΡΠ°Π»Π° ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π²ΡΡΡΠ½ΠΈΠ»Π°, ΡΡΠΎ ΡΠ°ΠΉΠ» aliases Π½ΠΎΠ²Π΅Π΅, ΡΠ΅ΠΌ aliases.db (ΡΡΠ°Π²Π½ΠΈΠ² ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ), ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»Π°, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ newaliases ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° aliasesAb. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ make Π΅ΡΠ΅ ΡΠ°Π·:
Server1# make aliases.db
Server1#
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ. ΠΠΎΡΠ΅ΠΌΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ΅ΡΠΊΠ°ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, Π²Π΅Π΄Ρ ΡΠ°ΠΉΠ» aliases.db Π½ΠΎΠ²Π΅Π΅ ΡΠ°ΠΉΠ»Π° aliases. ΠΠΎΠΌΠ°Π½Π΄Π° make Π»Π΅Π½ΠΈΠ²Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ°Π±ΠΎΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΡΠ°ΠΉΠ»Π°Ρ .
ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π² ΡΠ°ΠΉΠ»Π΅ Makefile:
file1.output: file1.input
command1 <file.input> file.output
file2.output: file2.input
command1 file2.input > [email protected]
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° stdin ΠΈ stdout (ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ < ΠΈ >), ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ fileXnput ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π·Π°ΠΏΠΈΡΡ Π² file, output. ΠΡΠΎΡΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π΅ΡΠ΅Ρ ΠΈΠΌΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄β¦ ΠΊΡΠ΄Π°? ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ [email protected] ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΡΠ°ΠΉΠ», ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉΒ», Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ file2.output. ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠΎΠ΄Π΅ $the ΠΈΠ»ΠΈ $this? ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ. ΠΠ°ΠΌ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ [email protected], Π½ΠΎ Ρ Π½ΠΈΠΌ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΌΠ½Π΅Π΅ ΡΠ²ΠΎΠΈΡ ΠΊΠΎΠ»Π»Π΅Π³.
ΠΠΎΠΌΠ°Π½Π΄Π° make, Π·Π°ΠΏΡΡΠ΅Π½Π½Π°Ρ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Makefile. ΠΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ all, ΠΈ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°ΠΏΡΡΠΊ make Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π±ΡΠ΄ΡΡ Π½Π΅ Π²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π° Π»ΠΈΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
all: aliases.db access.db
ΠΠΎΠΌΠ°Π½Π΄Π° make Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΠΈΡΡ Π»ΠΈ ΡΠ°ΠΉΠ»Ρ aliases.db ΠΈ access.db. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ all Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ all ΡΠΎΠ·Π΄Π°Π½ Π½Π΅ Π±ΡΠ΄Π΅Ρ. Π’ΠΎΠ³Π΄Π° make Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» all ΡΡΡΠ°ΡΠ΅Π» (Β«Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅ΡΒ» ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Β«ΡΡΡΠ°ΡΠ΅Π»Β»). ΠΡΠΊΠΎΡΠ΅ Π²Ρ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ΅ Π±ΡΠ΄Π΅ΠΌ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° make Π»Π΅Π½ΠΈΠ²Π°. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» access.db ΡΡΡΠ°ΡΠ΅Π», Π° Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ» β Π½Π΅Ρ, ΡΠΎ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ access.db. ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° Π΄Π»Ρ Π½ΠΈΡ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅, ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° make ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΎΠΌΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ all, Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΈΡΡ Π΅ΡΠ΅ ΠΏΠ°ΡΡ-ΡΡΠΎΠΉΠΊΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
reload:
postfix reload
stop:
postfix stop
Start:
postfix start
ΠΠ±ΡΡΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ·Π½Π°ΡΠ°ΡΡ. ΠΡΠ»ΠΈ Ρ Π²Π²Π΅Π΄Ρ make reload, ΠΊΠΎΠΌΠ°Π½Π΄Π° make Π·Π°ΠΌΠ΅ΡΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° reload ΠΈ Π·Π°ΠΏΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ postfix reload Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, ΡΡΠΎ ΡΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ». ΠΠ³Π°! Π― Π΅Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΈΡΡΠΈΠ»! Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Postfix. ΠΠ½Π° Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° reload ΠΠΎΠ³Π΄Π° Ρ Π²ΡΠΏΠΎΠ»Π½Ρ make reload Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠΌΠ°Π½Π΄Π° make ΠΏΠΎΡΡΡΠΏΠΈΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ Π²ΡΠ΅Π³Π΄Π°, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Π»Π° ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π΄Π΅Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° make.
ΠΠΌΠ΅Ρ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅, Ρ ΠΌΠΎΠ³Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ postfix, Π²Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ make reload, make stop ΠΈ make start ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠ»ΠΈ Π΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, IMAP ΡΠ΅ΡΠ²Π΅Ρ, Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΈ Ρ. Π΄.), Ρ Π²ΠΊΠ»ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π‘Π΅ΠΉΡΠ°Ρ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ°Π½ΡΡΠ΅ ΡΡΡΡ-ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π΅ΡΠ½ΡΠ». Π― ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ β ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΡ Π³Π»Π°Π²Π½ΡΠΉ. Π’Π°ΠΊ Π²ΠΎΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π΅ make Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΠΎΡΡΠΎΠΈΡ Π»ΠΈ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ . Π£ Π½Π΅Π΅ Π½Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ, ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ.
ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Makefile, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Postfix ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² aliases ΠΈ access. Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ (NEWALISES, PDIR ΠΈ Ρ. Π΄.), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π»Π΅Π΅ Π² ΡΠ°ΠΉΠ»Π΅. ΠΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»ΡΡ (\) Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π΄Π»ΠΈΠ½Π½ΡΡ ΡΡΡΠΎΠΊ:
NEWALISES=/usr/sbin/newaliases
PDIR=/etc/postfix
POSTMAP=/usr/local/postfix/sbin/postmap
# ΠΠΎΠΌΠ°Π½Π΄Ρ
all: $(PDIR)/aliases.pag $(PDTR)/aliases.dir \
$(PDIP)/access.dir $(PDIR)/access.pag reload
reload:
postfix reload
stop:
postfix stop
start:
postfix start
#
# ΠΠΎΠ³Π΄Π° aliases ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ. pag and.dir
#
$(PDIR)/aliases.pag $(PDIR)/aliases.dir: $(PDIR)/aliases $(NEWALIASES)
#
# ΠΠΎΠ³Π΄Π° access ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ. pag and.dir
#
$(PDIR)/access.dir $(PDIR)/access.pag: $(PDIR)/access $(POSTMAP) $(PDIR)/access
Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» aliases ΠΈΠ»ΠΈ access ΠΈ Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ make. ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ. Π― Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Postfix, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ all. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ reload Π² ΠΊΠΎΠ½ΡΠ΅ all Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ.