ΠΠ° 25 ΠΌΠ°ΡΡ ΠΎΡΠ²ΠΎΡΠΈΠ²ΠΌΠ΅ ΠΏΡΠΈΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π·Π°
- ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Π°Ρ Π’Π΅Π»Π΄Π΅ΠΊΠΎΠ² Π³ΠΎ ΠΎΡΠ²ΠΎΠΈ ΠΏΡΠ²ΠΎΡΠΎ ΠΌΠ΅ΡΡΠΎ.
ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Π°Ρ ΡΠΈ ΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Π΅ Π½Π°ΡΡΠΈΠΏΠΈΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ. ΠΠΈΠ²Π΅Π΅ Π²ΠΎ ΠΠΎΠ»Π³ΠΎΠ³ΡΠ°Π΄, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈ Π½Π° Unix ΠΎΠΊΠΎΠ»Ρ Π΄Π²Π°Π΅ΡΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Π£ΡΠΏΠ΅Π°Π² Π΄Π° ΡΠ°Π±ΠΎΡΠ°ΠΌ Π²ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅ΡΠΈ, Π±Π°Π½ΠΊΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΎΡ. Π‘Π΅Π³Π° ΡΠ°Π±ΠΎΡΠΈ ΠΎΠ΄ Π΄Π°Π»Π΅ΡΠΈΠ½Π° Π²ΠΎ ΠΌΠ°Π»Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°, ΡΠ°Π±ΠΎΡΠ΅ΡΡΠΈ Π½Π° ΠΎΠ±Π»Π°ΠΊ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° Π³ΠΎΠ»Π΅ΠΌ ΡΡΡΠ°Π½ΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ. Π‘Π°ΠΊΠ° Π΄Π° ΡΠΈΡΠ° ΠΈ ΡΠ»ΡΡΠ° ΠΌΡΠ·ΠΈΠΊΠ°. ΠΠ° ΠΈΠ³ΡΠ°ΡΠ°, ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Π°Ρ ΡΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ° ΠΌΡ ΡΠ΅ Π΄ΠΎΠΏΠ°Π΄Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ ΡΠ΅Π»ΠΈΠ½Π°, ΡΠ°ΠΊΠ° ΡΠ°ΠΊΠ²ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡ Π²ΠΎ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ² Π½Π΅ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΎ Π½Π° Hackerrank, Π±Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. - ΠΡΠΎΡΠΎ ΠΌΠ΅ΡΡΠΎ - Π ΠΎΠΌΠ°Π½ Π‘ΡΡΠ»ΠΎΠ².
Π ΠΎΠΌΠ°Π½ ΠΎΠ΄ ΠΠΎΡΠΊΠ²Π°. Π’ΠΎΡ ΠΈΠΌΠ° 37 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Π Π°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π·Π° Linux/Unix Π²ΠΎ Jet Infosystems. ΠΠ° ΡΠ°Π±ΠΎΡΠ°, ΠΌΠΎΡΠ°ΠΌ Π΄Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°ΠΌ ΠΈ Π΄Π° ΡΠ΅ΡΠ°Π²Π°ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ Linux/Unix ΡΠΈΡΡΠ΅ΠΌΠΈ + SAN. ΠΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ: Linux ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅, ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡΠ²ΠΎ, Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Arduino. ΠΠ° ΠΈΠ³ΡΠ°ΡΠ° Π ΠΎΠΌΠ°Π½ ΠΈΡΡΠ°ΠΊΠ½Π° Π΄Π΅ΠΊΠ° ΠΌΡ ΡΠ΅ Π΄ΠΎΠΏΠ°Π΄Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π²ΠΎ ΡΠ΅Π»ΠΈΠ½Π°. βΠΠ°Π»ΠΊΡ Π³ΠΎ ΠΈΡΠΏΡΡΠΆΠΈΠ² ΠΌΠΎΠ·ΠΎΠΊΠΎΡ ΠΈ ΡΠ΅ ΠΎΠ΄ΠΌΠΎΡΠΈΠ² ΠΎΠ΄ ΡΠΈΠ²ΠΎΡΠΎ ΡΠ΅ΠΊΠΎΡΠ΄Π½Π΅Π²ΠΈΠ΅ Π½Π° ΡΠ΅ΠΊΠΎΡΠ΄Π½Π΅Π²Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°. π ΠΠΈ ΡΠ°ΠΊΠ°Π» Π΄Π° ΠΈΠΌΠ°ΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ½Π°ΠΊΡ, ΠΏΡΠ΅Π΄ Π΄Π° ΠΈΠΌΠ°ΠΌ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π²ΠΊΡΡΠ°ΠΌ, ΠΈΠ³ΡΠ°ΡΠ° Π²Π΅ΡΠ΅ Π±Π΅ΡΠ΅ Π·Π°Π²ΡΡΠ΅Π½Π°β. - Π’ΡΠ΅ΡΠΎ - alex3d.
ΠΠ»Π΅ΠΊΡ ΠΆΠΈΠ²Π΅Π΅ Π²ΠΎ ΠΠΎΡΠΊΠ²Π° ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΡΠ°Π·Π²ΠΎΡ Π½Π° ΡΠΎΡΡΠ²Π΅Ρ. βΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ Π·Π° Π½Π°ΡΠΏΡΠ΅Π²Π°ΡΠΎΡ, Π±Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΡΠ΅ΡΡΠΈΡΠ°ΠΌ ΠΌΠΎΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠ½ΠΈ Π·Π° google-fuβ.
ΠΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΎ ΡΠ°Π½Π³ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° 10-ΡΠ΅ Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈ ΠΈΠ³ΡΠ°ΡΠΈ:
- ΠΠ²Π³Π΅Π½ΠΈΡ Π‘Π°Π»Π΄Π°Π΅Π²
- ΠΠ°ΡΠΊΠ΅Π» ΠΠΎΡ Π½Π°ΡΠ΅Π²ΡΠΊΠΈ
- ΠΠΎΠ½ΡΡΠ°Π½ΡΠΈΠ½ ΠΠΎΠ½ΠΎΡΠΎΠ²
- ΠΠ°Π²Π΅Π» Π‘Π΅ΡΠ³Π΅Π΅Π²
- ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ ΠΠΎΠ²Π°Π΅Π²
- ΠΠ²Π°Π½ ΠΡΠ±Π½ΠΎΠ²
- ΠΠ°Π²Π»ΠΎ ΠΠ»Π΅ΡΡ
Π Π°Π·Π±ΠΈΡΠ°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΡΠΈΡΠ΅ Π½Π°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ; Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρ.
1. ΠΡΠ²Π° ΡΠ°Π·Π°
ΠΠΎ Π½Π°ΡΠ΅ΠΊΠΎΠ²ΠΌΠ΅ βΠΠ°Π»ΠΈ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° ΡΠΈ Π°Π΄ΠΌΠΈΠ½?β, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π±Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° - Π΄Π° ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²ΠΈ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΡΠΎΠΏΠ»Π° ΡΠ²Π΅ΡΠΈΠ»ΠΊΠ°.
1.1. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΠ°ΠΊΡΠΈ:
ΠΠ²Π°ΡΡΠ° ΠΈΠ³ΡΠ°ΡΠΈ Π³ΠΎ Π½Π°ΡΠ΄ΠΎΠ° ΠΏΡΠ²ΠΈΠΎΡ ΠΊΠ»ΡΡ Π²ΠΎ ΠΏΡΠ²ΠΈΡΠ΅ 15 ΠΌΠΈΠ½ΡΡΠΈ ΠΈΠ³ΡΠ°, Π° Π²ΠΎ ΠΏΡΠ²ΠΈΠΎΡ ΡΠ°Ρ ΠΈΠΌΠ°Π²ΠΌΠ΅ ΡΡΠΎΡΡΠ° Π»ΠΈΠ΄Π΅ΡΠΈ ΠΊΠΎΠΈ ΡΠ° Π·Π°Π²ΡΡΠΈΡΠ° Π·Π°Π΄Π°ΡΠ°ΡΠ°.
1.2. ΠΠ΅ΠΆΠ±Π°ΡΡΠ΅
ΠΡΠΈΠ΄ΠΎΠ²ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π΅ΠΌΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ΅Π½ ΡΠΏΠ΅ΡΠΈΡΠ°Π»ΠΈΡΡ Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°. ΠΡΠ΅Π΄ Π΄Π° ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° Π³ΠΈ ΡΡΠ°Π²Π°ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π²ΠΎ ΡΠ΅Π΄, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΡΠ΅ Π³ΠΎΡΠ»ΠΈΠ²ΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΡ ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΊΠ°Π½ΡΠ΅Π»Π°ΡΠΈΡΠ°ΡΠ°.
Π§ΠΈΡΡΠ°ΡΠΊΠ°ΡΠ° ΡΠΎ ΡΠΎΠ³Π΅Ρ Π³ΠΎ ΡΠ°ΡΠΈΠ»Π° ΠΊΠ°Π±Π΅Π»ΠΎΡ Π·Π° ΡΡΡΡΡΠ° Π½Π° ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ. ΠΠ°ΠΏΠΎΡΡΠ²Π°ΡΠ΅ΡΠΎ Π΅ Π²ΡΠ°ΡΠ΅Π½ΠΎ, Π½ΠΎ ΠΌΠ½ΠΎΠ³Ρ Π²Π°ΠΆΠ½Π° Π²Π΅Π±-Π»ΠΎΠΊΠ°ΡΠΈΡΠ° ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π΅ Π²Π°ΠΆΠ½Π° Π·Π°ΡΠΎΠ° ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρ Π·Π°Π³ΡΠΈΠΆΠ΅Π½Π° Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈΡΠ΅, Π° Π½Π° Π³Π»Π°Π²Π½Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π° ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° Π½Π°ΡΠ΄Π΅ΡΠ΅ Π²ΠΎ ΡΠΈΡΡ ΡΠ΅ΠΊΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠ°ΡΠ° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΡ Π½Π° ΠΈΠ·Π²ΡΡΠ½ΠΈΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ.
ΠΡΠ΅Π΄ Π½Π΅ΠΊΠΎΡ Π΄Π΅Π½ ΡΠ΅ ΡΠΌΠ΅Π½ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°ΡΠ°, Π½ΠΎ ΡΠΈΡΠ΅ ΡΠ° Π·Π°Π±ΠΎΡΠ°Π²ΠΈΡΠ° Π½ΠΎΠ²Π°ΡΠ°, Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. ΠΠΎΡΡΠΎΡΠ°Ρ Π³Π»Π°ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° Π½Π° ΠΎΠ²Π°Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠΌΠ°Π»ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΊΠΎΠΈ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π΄Π° ΡΠ° Π΄Π΅ΡΠΈΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ ΡΠΌΠ΅ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ.
Π‘ΠΈΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π°Π°Ρ Π±ΡΠ·ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ!
1.3. Π Π΅ΡΠ΅Π½ΠΈΠ΅
1. ΠΡΠ΅Π΄ ΡΓ¨, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° ΡΠΌΠ΅Π½ΠΈΡΠ΅ root Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°ΡΠ° Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π·Π° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π½Π΅Π°. ΠΡΠΈ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅, Π·Π°Π±Π΅Π»Π΅ΠΆΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Ubuntu 16.04.
ΠΠ° Π΄Π° ΡΠ° ΡΠ΅ΡΠ΅ΡΠΈΡΠ°ΠΌΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°ΡΠ° Π·Π° root, ΡΠ° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΌΠ°ΡΠΈΠ½Π°ΡΠ°, ΠΏΡΠΈ Π²ΡΠΈΡΡΠ²Π°ΡΠ΅, Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΡ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ΅ ΠΌΠ΅Π½ΠΈΡΠΎ grub, ΠΎΠ΄Π΅ΡΠ΅ Π΄Π° ΡΠ° ΡΡΠ΅Π΄ΠΈΡΠ΅ ΡΡΠ°Π²ΠΊΠ°ΡΠ° Ubuntu ΡΠΎ ΠΊΠΎΠΏΡΠ΅ΡΠΎ βeβ. Π£ΡΠ΅Π΄Π΅ΡΠ΅ ΡΠ° Π»ΠΈΠ½ΠΈΡΠ°ΡΠ° Linux, Π΄ΠΎΠ΄Π°ΡΡΠ΅ ΡΠ° Π΄ΠΎ ΠΊΡΠ°Ρ init=/bin/bash
. ΠΡΠΈΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ΅ΠΊΡ Ctrl+x, Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Π±Π°Ρ. ΠΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ root ΡΠΎ rw, ΡΠΌΠ΅Π½Π΅ΡΠ΅ ΡΠ° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°ΡΠ°:
$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwd
ΠΠ΅ Π·Π°Π±ΠΎΡΠ°Π²Π°ΡΡΠ΅ Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΠ°, ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΡΠ΅.
2. Π£ΡΠ»ΠΎΠ²ΠΎΡ Π²Π΅Π»ΠΈ Π΄Π΅ΠΊΠ° Π½Π°ΡΠΈΠΎΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅:
$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18
Π’ΠΎΠ° Π΅, Π²ΡΡΡΠ½ΠΎΡΡ, Apache ΡΠ°Π±ΠΎΡΠΈ, Π½ΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° ΡΠΎ ΠΊΠΎΠ΄ 404. ΠΡΠ΄Π΅ Π΄Π° ΡΠ° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ°:
$ vim /etc/apache2/sites-enabled/000-default.conf
Π’ΡΠΊΠ° ΠΈΠΌΠ° ΠΈ ΠΊΠ»ΡΡ - Π‘ΡΠΈΠ²Π΅Π½ΠΠΎΠ»Π‘ΡΠΈΠ² ΠΠΎΠ±Ρ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠ°ΡΠ΅ΠΊΠ°ΡΠ° /usr/share/WordPress
- Π½Π΅ΠΌΠ° ΡΠ°ΠΊΠ²ΠΎ Π½Π΅ΡΡΠΎ, Π½ΠΎ ΠΈΠΌΠ° /usr/share/wordpress
. Π£ΡΠ΅Π΄Π΅ΡΠ΅ ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ Apache.
$ systemctl restart apache2
3. ΠΠ±ΠΈΠ΄Π΅ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, ΡΠ° Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Π³ΡΠ΅ΡΠΊΠ°ΡΠ°:
Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488
ΠΠ°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ?
$ systemctl status mysql
Active: active (running)
Π¨ΡΠΎ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ? Π’ΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΡΡΠ°ΡΠΈΠΌΠ΅. ΠΠ° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΎΠ²Π°, ΡΡΠ΅Π±Π° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ MySQL, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΠΎ skip-grant-tables
Π² /etc/mysql/mysql.conf.d/mysqld.cnf
. Π’ΡΠΊΠ° ΠΈΠΌΠ° ΠΈ ΠΊΠ»ΡΡ - AugustaAdaKingByron.
ΠΠΎΡΠ΅ΠΊΡΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΡΠ΅ ΠΏΡΠ°Π²Π° 'wp'@'localhost'
. ΠΠΎ Π»Π°Π½ΡΠΈΡΠ°ΠΌΠ΅ MySQL, Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌΠ΅ Π΄ΠΎΡΡΠ°ΠΏΠ΅Π½ ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΊΠΎΠΌΠ΅Π½ΡΠΈΡΠ°ΡΡΠΈ ΡΠ° ΠΎΠΏΡΠΈΡΠ°ΡΠ° Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° skip-networking
.
4. ΠΠΎ ΠΎΠ²ΠΈΠ΅ ΡΠ΅ΠΊΠΎΡΠΈ, Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π°, Π½ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ Π·Π°ΡΠΎΠ° ΡΡΠΎ
Warning: require_once(/usr/share/wordpress/wp-content/themes/twentysixteen/footer.php): failed to open stream: Permission denied in /usr/share/wordpress/wp-includes/template.php on line 562
ΠΠΈ ΡΡΠ΅Π΄ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ°.
$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php
ΠΠ° ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΠΌΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΠΎΠ΄ΠΈΠΌΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈ Π³ΠΎ Π½Π°ΠΎΡΠ°ΠΌΠ΅ ΠΊΠ»ΡΡΠΎΡ - BjarneStroustrup! ΠΠΈ Π½Π°ΡΠ΄ΠΎΠ²ΠΌΠ΅ ΡΠΈΡΠ΅ ΡΡΠΈ ΠΊΠ»ΡΡΠ°, Π½Π°ΡΠΈΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, Π³ΠΈ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°Π²ΠΌΠ΅ ΡΠΌΠ΅ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. Π‘ΠΈΡΠ΅ ΡΠ΅ ΡΡΠ΅ΡΠ½ΠΈ, Π° ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠ΅Π΄ Π²Π°Ρ Π·Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ°.
2. ΠΡΠΎΡΠ° ΡΠ°Π·Π°
ΠΠ΅ΡΠ΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°. Π‘Π΅ΠΊΠΎΡ ΡΠ°ΠΊΠ° Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° - ΠΊΠΎΡ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ, ΠΊΠ°Π΄Π΅ ΠΈ Π²ΠΎ ΠΊΠΎΠ»ΠΊΠ°Π²ΠΈ ΠΊΠΎΠ»ΠΈΡΠΈΠ½ΠΈ. ΠΠΎΡΠ΄ΠΎΠ²ΠΌΠ΅ Π΄ΠΎ ΡΠ»ΡΡΠ°Ρ ΡΠΎ ΠΊΠΎΡ ΡΠΈΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ΅ΡΠ½Π°Ρ Π²ΠΎ Π΅Π΄Π½Π° ΠΈΠ»ΠΈ Π΄ΡΡΠ³Π° ΡΠΎΡΠΌΠ° Π²ΠΎ ΠΆΠΈΠ²ΠΎΡΠΎΡ.
2.1. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΠ°ΠΊΡΠΈ
ΠΠ΄Π΅Π½ ΠΎΠ΄ Π½Π°ΡΠΈΡΠ΅ ΠΈΠ³ΡΠ°ΡΠΈ Π³ΠΎ Π²Π½Π΅ΡΠ΅ ΡΠΎΡΠ½ΠΈΠΎΡ ΠΊΠ»ΡΡ Π²ΠΎ ΠΏΡΠ²ΠΈΡΠ΅ 10 ΠΌΠΈΠ½ΡΡΠΈ ΠΎΠ΄ Π½Π°ΡΠΏΡΠ΅Π²Π°ΡΠΎΡ, Π° Π²ΠΎ ΠΏΡΠ²ΠΈΠΎΡ ΡΠ°Ρ ΠΈΠΌΠ°Π²ΠΌΠ΅ Π»ΠΈΠ΄Π΅Ρ ΠΊΠΎΡ ΡΠ° Π·Π°Π²ΡΡΠΈ Π·Π°Π΄Π°ΡΠ°ΡΠ°.
2.2. ΠΠ΅ΠΆΠ±Π°ΡΡΠ΅
ΠΡΠΈΠ΄ΠΎΠ²ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ°, ΠΌΠ΅Π½Π°ΡΠ΅ΡΠΈΡΠ΅ Π΄ΠΎΡΠ΄ΠΎΠ° ΠΊΠ°Ρ Π²Π°Ρ ΠΈ Π²Π΅ Π·Π°ΠΌΠΎΠ»ΠΈΡΠ° Π΄Π° Π½Π°ΡΠ΄Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠ³ΠΎ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ°Π°Ρ ΠΏΠΈΡΠΌΠ° ΠΎΠ΄ ΠΡΡΠΈΠΊΠ°. ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½ΠΈΠ² ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌΠ΅ ΠΏΡΠ²ΠΈΡΠ΅ 21 Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΠΏΡΠΈΠΌΠ°ΡΠΈ. ΠΡΠ²ΠΈΡΠ΅ Π±ΡΠΊΠ²ΠΈ ΠΎΠ΄ Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ°ΡΠΈΡΠ΅ ΡΠ΅ ΠΊΠ»ΡΡΠ½ΠΈΡΠ΅. ΠΠ΄Π½Π° ΡΠ°Π±ΠΎΡΠ°: ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΠΏΠΎΡΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΊΠΎΡ ΡΠ΅ ΠΈΡΠΏΡΠ°ΡΠ΅Π½ΠΈ ΠΏΠΈΡΠΌΠ°ΡΠ° Π½Π΅ ΡΠ΅ Π²ΡΠΈΡΡΠ²Π°. Π‘ΠΈΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π°Π°Ρ Π±ΡΠ·ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ!
2.3. Π Π΅ΡΠ΅Π½ΠΈΠ΅
1. Π‘Π΅ΡΠ²Π΅ΡΠΎΡ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄ΠΈΠ³Π° ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠ° swap ΠΏΠ°ΡΡΠΈΡΠΈΡΠ° Π²ΠΎ fstab, ΠΏΡΠΈ Π²ΡΠΈΡΡΠ²Π°ΡΠ΅, ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° Π΄Π° Π³ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ° ΠΈ ΠΏΠ°ΡΠ°. ΠΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅?
ΠΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ ΡΠ° ΡΠ»ΠΈΠΊΠ°ΡΠ°, ΡΠΈΠΌΠ½Π°Π²ΠΌΠ΅ CentOS 7, ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ ΠΎΠ΄ Π¦Π/ΠΠΠ Π²ΠΎ ΠΆΠΈΠ²ΠΎ (ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ -> ΡΠΏΠ°ΡΡΠ²Π°ΡΠ΅), ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅ΡΠ΅ /etc/fstab
. ΠΠ΅Π΄Π½Π°Ρ Π³ΠΎ Π½Π°ΠΎΡΠ°ΠΌΠ΅ ΠΏΡΠ²ΠΈΠΎΡ ΠΊΠ»ΡΡ - ΠΠΎΡΡΡΠΈΠ΄ ΠΠΈΠ»Ρ
Π΅Π»ΠΌ11646ΠΠ°ΡΠ±Π½ΠΈΡ!
ΠΡΠ΅ΠΈΡΠ°Ρ Π·Π°ΠΌΠ΅Π½Π°:
$ lvcreate -n swap centos -L 256M
$ sync && reboot
2. ΠΠ°ΠΊΠΎ ΠΈ ΡΠ΅ΠΊΠΎΠ³Π°Ρ, Π½Π΅ΠΌΠ° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° ΡΠΌΠ΅Π½ΠΈΡΠ΅ root Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°ΡΠ° Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°. ΠΠΈΠ΅ Π²Π΅ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΠΎΠ²Π° Π²ΠΎ ΠΏΡΠ²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ°. Π‘Π΅ ΠΌΠ΅Π½ΡΠ²Π°ΠΌΠ΅ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ Π½Π°ΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ, Π½ΠΎ ΡΠΎΡ Π²Π΅Π΄Π½Π°Ρ ΠΎΠ΄ΠΈ Π²ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅. Π‘Π΅ΡΠ²Π΅ΡΠΎΡ Π΅ ΠΏΡΠ΅ΠΎΠΏΡΠΎΠ²Π°ΡΠ΅Π½ ΡΠΎ ΡΠ°ΠΊΠ²Π° Π±ΡΠ·ΠΈΠ½Π° ΡΡΠΎ Π½Π΅ΠΌΠ°ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΠ΅ ΡΠΈΡΠ΅ Π΄Π½Π΅Π²Π½ΠΈΡΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ. ΠΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°?
ΠΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΈΠ³Π°ΠΌΠ΅ ΠΎΠ΄ livecd, Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ Π³ΠΈ ΠΏΡΠΎΡΡΡΠ²Π°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡΠ΅ Π»ΠΎΠ³ΠΎΠ²ΠΈ ΠΈ, Π·Π° ΡΠ΅ΠΊΠΎΡ ΡΠ»ΡΡΠ°Ρ, Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΠΎ cron, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ°ΠΊΠ²Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡ. Π’Π°ΠΌΡ Π³ΠΎ Π½Π°ΠΎΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΠΈ Π²ΡΠΎΡΠΈΠΎΡ ΠΊΠ»ΡΡ - Alan1912MathisonTuring!
Π’ΡΠ΅Π±Π° Π²ΠΎ /etc/crontab
ΠΈΠ·Π±ΡΠΈΡΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ΅Π½ΡΠΈΡΠ°ΡΡΠ΅ ΡΠ° Π»ΠΈΠ½ΠΈΡΠ°ΡΠ° echo b > /proc/sysrq-trigger
.
3. ΠΠΎ ΡΡΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ ΡΠ΅ Π²ΡΠΈΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° Π·Π°Π²ΡΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ° Π½Π° ΠΌΠ΅Π½Π°ΡΠ΅ΡΠΈΡΠ΅: βΠΠΎΠΈ ΡΠ΅ Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π²ΠΎ ΠΡΡΠΈΠΊΠ°?β ΠΠ²ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ΅ ΠΎΠΏΡΡΠΎ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ Π·Π° ΡΠ°Π²Π½ΠΎΡΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ Π½Π°ΡΠ΄Π΅ΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΡΡΠ°Π·ΠΈΡΠ΅ βip address africaβ, βgeoip databaseβ. ΠΠ° Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ»ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠΈ (geoip). ΠΠ° ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄
ΠΡΠ΄Π΅ Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈΠΌΠ΅ Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ°ΠΌΠΎ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΊΠΎΠΌΡΠ½Π°Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π½Π° Linux, Π½ΠΎ Π³Π΅Π½Π΅ΡΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠΈ Π½Π° ΠΎΠ³ΡΠΎΠΌΠ΅Π½ Π±ΡΠΎΡ Π½Π°ΡΠΈΠ½ΠΈ: ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ ΡΠ΅ΠΊΡΡ ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ.
ΠΠ° ΠΏΠΎΡΠ΅ΡΠΎΠΊ, Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΏΠ°ΡΠΎΠ²ΠΈΡΠ΅ βΠΠ Π½Π° ΠΈΡΠΏΡΠ°ΡΠ°Ρ-ΠΏΡΠΈΠΌΠ°Ρβ ΠΎΠ΄ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ Π·Π° ΠΏΠΎΡΡΠ° /var/log/maillog
(Π°ΡΠ΄Π΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌΠ΅ ΡΠ°Π±Π΅Π»Π° Π½Π° ΠΏΡΠΈΠΌΠ°ΡΠΈ Π½Π° Π΅-ΠΏΠΎΡΡΠ° - IP Π½Π° ΠΈΡΠΏΡΠ°ΡΠ°ΡΠΎΡ). ΠΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΎ ΡΠ»Π΅Π΄Π½Π°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
$ cat /var/log/maillog | fgrep -e ' connect from' -e 'status=sent' | sed 's/[]<>[]/ /g' | awk '/connect from/ {ip=$11} /status=sent/ {print $10" "ip}' > log1.txt
Π ΠΏΡΠ΅Π΄ Π΄Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ ΡΠΎ ΡΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π°ΡΡΠΈΠΊΠ°Π½ΡΠΊΠΈ Π°Π΄ΡΠ΅ΡΠΈ, Π°ΡΠ΄Π΅ Π΄Π° Π³ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π²ΡΠ²Π½ΠΈΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΠΈΡΠΏΡΠ°ΡΠ°ΡΠΈΡΠ΅.
$ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40
5206 [email protected]
4165 [email protected]
3739 [email protected]
3405 [email protected]
3346 [email protected]
ΠΠ΅ΡΡ ΡΠΈΡΠ΅, ΠΏΠΎ Π±ΡΠΎΡΠΎΡ Π½Π° Π±ΡΠΊΠ²ΠΈ ΡΠ°ΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·Π΄Π²ΠΎΡΡΠ²Π°Π°Ρ ΠΏΡΠ²ΠΈΡΠ΅ ΡΡΠΎΡΡΠ° ΠΏΡΠΈΠΌΠ°ΡΠ΅Π»ΠΈ ΠΎΠ΄ Π²ΡΠ²ΠΎΡ. ΠΠΊΠΎ Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ IP-Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΈΡΠΏΡΠ°ΡΠ°ΡΠΈΡΠ΅ ΡΡΠΎ ΠΏΡΠ°ΡΠ°Π»Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠΈ ΠΎΠ΄ ΠΎΠ²Π°Π° ΡΠΎΠΏ 3, ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅ ΡΠ°ΡΠ½Π° Π΄ΠΎΠΌΠΈΠ½Π°ΡΠΈΡΠ° Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ:
$ cat log1.txt | fgrep '[email protected]' | cut -d' ' -f2 | sort | cut -d'.' -f1 | uniq -c | sort -r | head
831 105
806 41
782 197
664 196
542 154
503 102
266 156
165 45
150 160
108 165
ΠΠ°ΡΠ³ΠΎΠ»Π΅ΠΌ Π΄Π΅Π» ΠΎΠ΄ ΠΌΡΠ΅ΠΆΠΈΡΠ΅ 105/8, 41/8, 196/8,197/8 ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π½Π° ΠΠ€Π ΠΠΠΠ - Π΅Π΄Π΅Π½ ΠΎΠ΄ ΠΏΠ΅ΡΡΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΎΡΠΈ ΠΊΠΎΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ΅ΡΡΡΡΠΈ. ΠΠ€Π ΠΠΠΠ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° Π°Π΄ΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΡΠΎΡ Π½ΠΈΠ· ΡΠ΅Π»Π° ΠΡΡΠΈΠΊΠ°. Π 41/8 ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π½Π° ΠΠ€Π ΠΠΠΠ¦Π ΡΠ΅Π»ΠΎΡΠ½ΠΎ.
https://www.nic.ru/whois/?searchWord=105.0.0.0
https://www.nic.ru/whois/?searchWord=41.0.0.0
Π’Π°ΠΊΠ°, ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΎΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅, Π²ΡΡΡΠ½ΠΎΡΡ, Π²ΠΎ ΡΠ°ΠΌΠΈΠΎΡ Π΄Π½Π΅Π²Π½ΠΈΠΊ.
$ cat log1.txt | fgrep -e '105.' -e '41.' -e '196.' -e '197.' -e '154.' -e '102.' | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
4209 [email protected]
3313 [email protected]
2704 [email protected]
2215 [email protected]
1774 [email protected]
1448 [email protected]
1233 [email protected]
958 [email protected]
862 [email protected]
762 [email protected]
632 [email protected]
539 [email protected]
531 [email protected]
431 [email protected]
380 [email protected]
357 [email protected]
348 [email protected]
312 [email protected]
289 [email protected]
282 [email protected]
274 [email protected]
ΠΠΎ ΠΎΠ²Π°Π° ΡΠ°Π·Π° ΡΠ° Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Π½ΠΈΠ·Π°ΡΠ° βLinuxBenedictTorvadstβ.
Π’ΠΎΡΠ΅Π½ ΠΊΠ»ΡΡ: βLinusBenedictTorvaldsβ.
Π Π΅Π·ΡΠ»ΡΠΈΡΠ°ΡΠΊΠ°ΡΠ° Π½ΠΈΠ·Π° ΡΠΎΠ΄ΡΠΆΠΈ ΠΏΠ΅ΡΠ°ΡΠ½Π° Π³ΡΠ΅ΡΠΊΠ° Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΡΠΎΡΠ½ΠΈΠΎΡ ΠΊΠ»ΡΡ Π²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 3 Π·Π½Π°ΡΠΈ. ΠΠ²Π° ΡΠ΅ Π΄ΠΎΠ»ΠΆΠΈ Π½Π° ΡΠ°ΠΊΡΠΎΡ ΡΡΠΎ ΠΌΡΠ΅ΠΆΠΈΡΠ΅ ΡΡΠΎ Π³ΠΈ ΠΈΠ·Π±ΡΠ°Π²ΠΌΠ΅ Π½Π΅ ΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈ Π½Π° Π°ΡΡΠΈΠΊΠ°Π½ΡΠΊΠΈΡΠ΅ Π·Π΅ΠΌΡΠΈ ΠΈ Π½Π° Π½Π°ΡΠΈΠ½ΠΎΡ Π½Π° ΠΊΠΎΡ Π΅-ΠΏΠΎΡΠ°ΠΊΠΈΡΠ΅ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π°Ρ ΠΌΠ΅ΡΡ IP Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π²ΠΎ Π½Π°ΡΠΈΠΎΡ Π΄Π½Π΅Π²Π½ΠΈΠΊ.
Π‘ΠΎ Π΄ΠΎΠ²ΠΎΠ»Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° Π½Π°ΡΠ³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π½Π° Π°ΡΡΠΈΠΊΠ°Π½ΡΠΊΠΈΡΠ΅ Π·Π΅ΠΌΡΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠ·Π΅Π½ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ:
$ cat log1.txt | fgrep -e' '105.{30..255}. -e' '41. -e' '196.{64..47}. -e' '196.{248..132}. -e' '197.{160..31}. -e' '154.{127..255}. -e' '102.{70..255}. -e' '156.{155..255}. | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
3350 [email protected]
2662 [email protected]
2105 [email protected]
1724 [email protected]
1376 [email protected]
1092 [email protected]
849 [email protected]
712 [email protected]
584 [email protected]
463 [email protected]
365 [email protected]
269 [email protected]
225 [email protected]
168 [email protected]
142 [email protected]
111 [email protected]
96 [email protected]
78 [email protected]
56 [email protected]
56 [email protected]
40 [email protected]
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠΈ ΠΈ Π½Π° Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½.
ΠΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ Π³ΠΎ MaxMind, ΠΎΡΠΏΠ°ΠΊΡΠ²Π°ΡΡΠ΅ Π³ΠΎ ΠΈ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π³ΠΎ ΡΠ΅ΡΠ°Π²Π°Π°Ρ Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
$ cat GeoLite2-Country-Locations-ru.csv | grep "ΠΡΡΠΈΠΊΠ°" | cut -d',' -f1 > africaIds.txt
$ grep -Ff africaIds.txt GeoLite2-Country-Blocks-IPv4.csv | cut -d',' -f1 > africaNetworks.txt
$ grepcidr -f africaNetworks.txt log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n21
ΠΠ°ΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠ½Π°ΠΊΠ°, Π½Π° ΠΊΡΠ°ΡΠΎΡ ΡΠ° ΠΏΡΠ΅ΡΠΌΠ΅ΡΠ°Π²ΠΌΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ°, Π° ΠΌΠ΅Π½Π°ΡΠ΅ΡΠΈΡΠ΅ Π³ΠΈ Π΄ΠΎΠ±ΠΈΡΠ° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ ΡΡΠΎ ΠΈΠΌ Π±Π΅Π° ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ°!
3. Π’ΡΠ΅ΡΠ° ΡΠ°Π·Π°
Π’ΡΠ΅ΡΠ°ΡΠ° ΡΠ°Π·Π° Π΅ Π½Π΅ΡΡΠΎ ΡΠ»ΠΈΡΠ½Π° Π½Π° ΠΏΡΠ²Π°ΡΠ° - ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΡΠΎΠΏΠ»Π° ΡΠ²Π΅ΡΠΈΠ»ΠΊΠ°, Π½ΠΎ ΡΓ¨ Π΅ ΠΏΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡΠΈΡΠ°Π½ΠΎ ΠΎΡΠΊΠΎΠ»ΠΊΡ Π²ΠΎ ΠΏΡΠ²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ°.
3.1. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΡΠ°ΠΊΡΠΈ
ΠΠΎ ΠΏΡΠ²ΠΈΡΠ΅ 15 ΠΌΠΈΠ½ΡΡΠΈ ΡΡΠΎΡΡΠ° ΠΈΠ³ΡΠ°ΡΠΈ Π³ΠΎ Π½Π°ΡΠ΄ΠΎΠ° ΠΏΡΠ²ΠΈΠΎΡ ΠΊΠ»ΡΡ, 2 ΡΠ°ΡΠ° ΠΈ 20 ΠΌΠΈΠ½ΡΡΠΈ ΠΏΠΎ ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° Π΅ΡΠ°ΠΏΠ°ΡΠ° Π½Π°ΡΠΈΠΎΡ ΠΏΠΎΠ±Π΅Π΄Π½ΠΈΠΊ ΡΠ° Π·Π°Π²ΡΡΠΈ Π·Π°Π΄Π°ΡΠ°ΡΠ°.
3.2. ΠΠ΅ΠΆΠ±Π°ΡΡΠ΅
ΠΡΠΈΠ΄ΠΎΠ²ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΡΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ° ΡΠ΅ Π·Π°ΡΡΠ²Π°Π½ΠΈ Π½Π° Π²Π½Π°ΡΡΠ΅ΡΠ΅Π½ ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΠΈΠΊΠΈ. ΠΠΈΠ½Π°ΡΠ°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π½Π°ΡΠ°ΡΠ° 3 Π½ΠΎΠ²ΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΈ Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ, ΠΏΠΎΠΊΡΠ°Ρ Π΅Π΄Π΅Π½ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ, ΡΠ²ΡΠ΄Π΅ΡΡΠΈ Π΄Π΅ΠΊΠ° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ΅Π½ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΡΡΠ°Π²Π°Ρ Π²ΠΎ Π½Π΅ΠΊΠ°ΠΊΠ²ΠΈ Π½ΠΈΠ·ΠΈ. ΠΠ° ΠΆΠ°Π», Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π½Π΅Π΄Π΅Π»ΠΈ ΠΏΠΎ Π½ΠΈΠ²Π½ΠΎΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΡ Π·Π°ΠΌΠΈΠ½Π°Π» Π½Π° ΠΎΠ΄ΠΌΠΎΡ Π²ΠΎ ΠΠ½Π΄ΠΈΡΠ° ΠΈ Π½Π΅ ΡΠ΅ Π²ΡΠ°ΡΠΈΠ».
Π‘Π΅ΡΠ²Π΅ΡΠΎΡ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ Π±Π΅Π· Π΄Π΅ΡΠ΅ΠΊΡΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ ΠΏΡΠ΅Π΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π΄Π΅Π½Π° Π±Π΅ΡΠ΅ Ρ Π°ΠΊΠΈΡΠ°Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ°. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅, Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΠΎΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π» Π³ΠΈ ΠΎΡΡΡΡΠ°Π½ΠΈΠ» Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ ΠΈ Π²ΠΈ Π³ΠΈ ΠΈΡΠΏΡΠ°ΡΠΈΠ». ΠΠ° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΎΡ, Π΅Π΄Π΅Π½ Π΄ΠΈΡΠΊ Π±Π΅ΡΠ΅ Π½Π΅ΠΏΠΎΠ²ΡΠ°ΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ±Π΅Π½.
Π’ΡΠ΅Π±Π° Π΄Π° ΡΠ° Π²ΡΠ°ΡΠΈΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° Π½Π° ΠΠΈΠΊΠΈ, ΠΏΡΠ΅Π΄ ΡΓ¨, Π½Γ¨ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° Π²ΠΈΠΊΠΈ-ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅. ΠΠ΄ΡΠ΅Π΄Π΅Π½ Π΄Π΅Π» ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠΎΡ ΡΡΠΎ ΡΠ΅ Π½Π°ΠΎΡΠ°ΡΠ΅ Π½Π° Π΅Π΄Π½Π° ΠΎΠ΄ ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΠ²Π° Π²ΠΈΠΊΠΈ Π΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°ΡΠ° Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ 1C ΠΈ Π΅ ΠΈΡΠ½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π΅Π½ Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈ.
ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, Π½Π΅ΠΊΠ°Π΄Π΅ Π½Π° Π²ΠΈΠΊΠΈ-ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΠΈΠ»ΠΈ Π½Π° Π΄ΡΡΠ³ΠΎ ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ°Π»ΠΎ Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ Π·Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° Π΄Π½Π΅Π²Π½ΠΈΡΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ Π½Π°Π΄Π·ΠΎΡ, ΠΊΠΎΠΈ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠΆΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ°ΡΠ°Ρ; Π±Π΅Π· Π½ΠΈΠ², ΠΈΡΡΡΠ°Π³Π°ΡΠ° Π·Π° ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΡ Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. ΠΠ°ΠΊΠΎ ΠΈ ΡΠ΅ΠΊΠΎΠ³Π°Ρ, ΠΎΡΠ΅ΠΊΡΠ²Π°ΠΌΠ΅ Π±ΡΠ·ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ!
3.3. Π Π΅ΡΠ΅Π½ΠΈΠ΅
1. Π‘Π΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅ΠΌΠ΅ Π΅Π΄Π΅Π½ ΠΏΠΎ Π΅Π΄Π΅Π½ ΠΎΠ΄ Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎ Π³ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈ ΡΠ΅ΠΊΠ°Π΄Π΅ ΡΠ° Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΈΡΡΠ°ΡΠ° ΠΏΠΎΡΠ°ΠΊΠ°:
No bootable medium found! System halted
Π’ΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅ΡΠ΅ ΠΎΠ΄ Π½Π΅ΡΡΠΎ. ΠΠΎΠ΄ΠΈΠ³Π½ΡΠ²Π°ΡΠ΅ΡΠΎ ΠΎΠ΄ Π¦Π/ΠΠΠ Π²ΠΎ ΠΆΠΈΠ²ΠΎ (ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ -> ΡΠΏΠ°ΡΡΠ²Π°ΡΠ΅) ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠ°Π³Π°. ΠΡΠΈ Π²ΡΠΈΡΡΠ²Π°ΡΠ΅, ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ° Π½Π°ΡΠ΄Π΅ΠΌΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠ° Π½Π°ΡΠ΄Π΅ΠΌΠ΅, Π·Π°Π²ΡΡΡΠ²Π°ΠΌΠ΅ Π²ΠΎ ΡΠΊΠΎΠ»ΠΊΠ°. Π‘Π΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΡΡΠΈΠΌΠ΅ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΈ. ΠΠΎΠ·Π½Π°ΡΠΎ Π΅ Π΄Π΅ΠΊΠ° Π³ΠΈ ΠΈΠΌΠ° ΡΡΠΈ. ΠΠ° ΠΎΠ²Π° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π²ΠΎ 7-ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° CentOS, ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ blkid
ΠΈΠ»ΠΈ lsblk
, ΠΊΠΎΠΈ Π½ΠΈ Π³ΠΈ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°Π°Ρ ΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅.
ΠΠ°ΠΊΠΎ ΠΈ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠΌΠ΅:
$ ls /dev/sd*
ΠΠ΅Π΄Π½Π°Ρ Π΅ ΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΎ Π΄Π΅ΠΊΠ°
/dev/sdb1 - ext4
/dev/sdb2 - ΡΠ°ΡΡΡ lvm
/dev/sda1 ΠΈ /dev/sdc1 - ΡΠ°ΡΡΠΈ ΡΠ΅ΠΉΠ΄Π°
/dev/sda2 ΠΈ /dev/sdc2 - ΠΏΡΠΎ Π½ΠΈΡ
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ
ΠΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅ sdb1, ΡΠ°ΡΠ½ΠΎ Π΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ° Π·Π° ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ Π½Π° CentOS 6.
$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1
ΠΡΠΈΠ³Π»Π΅Π΄Π½ΠΎ, ΠΎΠ΄ΠΈΠΌΠ΅ Π²ΠΎ Π΄Π΅Π»ΠΎΡ grub ΠΈ ΡΠ°ΠΌΡ Π³ΠΎ Π½Π°ΠΎΡΠ°ΠΌΠ΅ ΠΏΡΠ²ΠΈΠΎΡ ΠΊΠ»ΡΡ - James191955Gosling Π²ΠΎ Π½Π΅ΠΎΠ±ΠΈΡΠ½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°.
2. ΠΠΈ ΠΏΡΠΎΡΡΡΠ²Π°ΠΌΠ΅ pvs ΠΈ lvs, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ ΡΠΎ LVM. ΠΠ»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠΌΠ° 2 ΡΠΈΠ·ΠΈΡΠΊΠΈ ΡΠΎΠΌΠ°, Π΅Π΄Π΅Π½ Π½Π΅ Π΅ Π»ΠΎΡΠΈΡΠ°Π½ ΠΈ ΡΠ΅ ΠΆΠ°Π»ΠΈ Π½Π° ΠΈΠ·Π³ΡΠ±Π΅Π½ ΡΠΈΠ΄. ΠΠ»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠΌΠ° 2 Π»ΠΎΠ³ΠΈΡΠΊΠΈ ΡΠΎΠΌΠ°: root ΠΈ swap, Π΄ΠΎΠ΄Π΅ΠΊΠ° root Π΅ Π΄Π΅Π»ΡΠΌΠ½ΠΎ ΠΈΠ·Π³ΡΠ±Π΅Π½ (Π°ΡΡΠΈΠ±ΡΡΠΎΡ P Π½Π° Π²ΠΎΠ»ΡΠΌΠ΅Π½ΠΎΡ). ΠΠ΅ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ°, ΡΡΠΎ Π΅ ΡΡΠ΅ΡΠ°! ΠΠ°Π²ΠΈΡΡΠΈΠ½Π° Π½ΠΈ ΡΡΠ΅Π±Π°.
ΠΠΌΠ° ΡΡΡΠ΅ 2 Π΄ΠΈΡΠΊΠΎΠ²ΠΈ, Π³ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅, Π³ΠΈ ΡΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅:
$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127 /mnt/md127
ΠΠ»Π΅Π΄Π°ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ° Π·Π° ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ Π½Π° CentOS 6 ΠΈ Π΄ΡΠΏΠ»ΠΈΠΊΠ°Ρ Π½Π° ΠΎΠ½Π° ΡΡΠΎ Π΅ Π²Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ /dev/sdb1
, ΠΈ ΡΡΠΊΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΡΠΈΠΎΡ ΠΊΠ»ΡΡ - DennisBMacAlistairCRitchie!
ΠΡΠ΄Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΅ ΡΠΊΠ»ΠΎΠΏΠ΅Π½ /dev/md127
.
$ mdadm --detail /dev/md127
ΠΠ»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠΎΡΡΠ°Π²ΠΈ ΠΎΠ΄ 4 Π΄ΠΈΡΠΊΠΎΠ²ΠΈ, Π½ΠΎ Π±Π΅ΡΠ΅ ΡΠΊΠ»ΠΎΠΏΠ΅Π½ ΠΎΠ΄ Π΄Π²Π° /dev/sda1
ΠΈ /dev/sdc1
, ΡΠΈΠ΅ ΡΡΠ΅Π±Π°ΡΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π±ΡΠΎΠ΅Π²ΠΈΡΠ΅ 2 ΠΈ 4 Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ΄ /dev/sda2
ΠΈ /dev/sdc2
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΡΠΎΠ±Π΅ΡΠ΅ΡΠ΅ Π½ΠΈΠ·Π°. ΠΠ΅ Π΅ ΡΠ°ΡΠ½ΠΎ Π·ΠΎΡΡΠΎ Π½Π΅ΠΌΠ° ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π½ΠΈΠ², Π½ΠΎ ΠΎΠ²Π° Π΅ Π½Π° ΡΠΎΠ²Π΅ΡΡ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΎΡ, ΠΊΠΎΡ Π΅ Π½Π΅ΠΊΠ°Π΄Π΅ Π²ΠΎ ΠΠΎΠ°. ΠΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠΌΠ° RAID10, ΠΈΠ°ΠΊΠΎ ΠΈΠΌΠ° ΠΎΠΏΡΠΈΠΈ. ΠΠΈΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΠΌΠ΅:
$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2
ΠΠ»Π΅Π΄Π°ΠΌΠ΅ Π½Π° blkid, pvs, lvs. ΠΡΠΊΡΠΈΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠΎΠ±ΡΠ°Π²ΠΌΠ΅ ΡΠΈΠ·ΠΈΡΠΊΠΈ Π²ΠΎΠ»ΡΠΌΠ΅Π½ ΠΊΠΎΡ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ Π½ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠ²Π°ΡΠ΅.
lvroot Π±Π΅ΡΠ΅ Π²Π΅Π΄Π½Π°Ρ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½, Π³ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅, Π½ΠΎ ΠΏΡΠ²ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ VG:
$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot
Π ΡΓ¨ Π΅ ΡΠ°ΠΌΡ, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΎ ΠΈ ΠΊΠ»ΡΡΠΎΡ Π²ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΎΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ - /root/sweet.
3. Π‘Γ¨ ΡΡΡΠ΅ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΎΠΆΠΈΠ²Π΅Π΅ΠΌΠ΅ Π½Π°ΡΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ. Π‘ΠΈΡΠ΅ Π»ΠΎΠ³ΠΈΡΠΊΠΈ ΡΠΎΠΌΠΎΠ²ΠΈ ΠΎΠ΄ Π½Π°ΡΠ°ΡΠ° /dev/md0
(ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π½Π°ΡΠ΄ΠΎΠ²ΠΌΠ΅ ΡΓ¨) ΠΏΠΎΠ²Π»Π΅ΡΠ΅ΡΠ΅ Π³ΠΎ Π΄ΠΎ /dev/sdb2
, ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΠΏΡΠ²ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ ΡΠ΅Π»ΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ.
$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0
ΠΠΎ ΠΈΡΠΊΠ»ΡΡΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ, Π³ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅ 1 ΠΈ 3, Π³ΠΎ ΠΎΡΡΠ°Π²Π°ΠΌΠ΅ Π²ΡΠΎΡΠΈΠΎΡ, ΡΠ΅ ΠΏΠΎΠ΄ΠΈΠ³Π°ΠΌΠ΅ ΠΎΠ΄ Live CD/DVD Π²ΠΎ Rescue. ΠΠ°ΡΠ΄Π΅ΡΠ΅ ΡΠ° ΠΏΠ°ΡΡΠΈΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ ΠΈ Π²ΡΠ°ΡΠ΅ΡΠ΅ Π³ΠΎ ΠΏΠΎΠ΄ΠΈΠ³Π½ΡΠ²Π°ΡΠΎΡ Π²ΠΎ grub:
root (hd0,0)
setup (hd0)
ΠΠΎ ΠΎΡΠΊΠΈΠ½ΡΠ²Π°ΠΌΠ΅ Π΄ΠΈΡΠΊΠΎΡ Π·Π° ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ Π²ΡΠΈΡΡΠ²Π°ΠΌΠ΅, Π½ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ.
4. ΠΠΎΡΡΠΎΡΠ°Ρ Π΄Π²Π΅ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ Π²Π΅Π±-Π»ΠΎΠΊΠ°ΡΠΈΡΠ°: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ Apache-ΡΠΎ ΠΎΠ΄ Π½ΡΠ»Π° ΠΈΠ»ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ nginx ΡΠΎ php-fpm Π²Π΅ΡΠ΅ ΠΎΠ΄Π½Π°ΠΏΡΠ΅Π΄ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½:
$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ MySQL:
$ /etc/init.d/mysqld start
ΠΠ΅ΠΌΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅, Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΎΡ Π»Π΅ΠΆΠΈ Π²ΠΎ /var/log/mysql
. ΠΠ΅Π΄Π½Π°Ρ ΡΡΠΎΠΌ ΡΠ΅ Π³ΠΎ ΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΡΠΎ MySQL, ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ, Π½Π° Π³Π»Π°Π²Π½Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΡΠ΅ ΠΈΠΌΠ° ΠΊΠ»ΡΡ - RichardGCCMatthewGNUStallman! Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ 1C, Π° Π²ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠΈ Π³ΠΈ Π·Π΅ΠΌΠ°Π°Ρ ΠΏΠ»Π°ΡΠΈΡΠ΅. Π ΠΊΠ°ΠΊΠΎ ΠΈ ΡΠ΅ΠΊΠΎΠ³Π°Ρ, Π²ΠΈ ΠΏΡΠ΅ΡΡΡΠΎΠΈ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π±ΠΎΡΠ° Π·Π° Π²ΠΎΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ°.
ΠΠΎΠΆΠ΅ΠΌΠ΅ ΡΡΡΠ΅ Π΅Π΄Π½Π°Ρ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎ ΠΊΠ½ΠΈΠ³ΠΈ ΠΊΠΎΠΈ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π° Π½Π°ΠΌ ΠΈ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΡΡΠ΅ΡΠ½ΠΈΡΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠΌΠ΅ Π·Π° ΠΈΠ³ΡΠ°ΡΠ°:
ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ ΡΡΠΎ ΡΡΠ΅ ΡΠΎ Π½Π°Ρ! ΠΡΡΠ°Π½Π΅ΡΠ΅ ΡΠΎ Π½Π°ΡΠ°Π²ΠΈΡΠ΅ Π·Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ!
ΠΠ·Π²ΠΎΡ: www.habr.com