ru
Feedback
🐧 Linux Junior. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux.

🐧 Linux Junior. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² Telegram

Канал для программистов Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Linux. ΠŸΠΎΡ‡Ρ‚ΠΈ всС Python Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€Ρ‹ с Π½Π°ΠΌΠΈ Π½Ρƒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΎΠΆΠ΅ подтянутся. По Ρ€Π΅ΠΊΠ»Π°ΠΌΠ΅: @jannytg @anothertechrock

Π‘ΠΎΠ»ΡŒΡˆΠ΅
3 095
ΠŸΠΎΠ΄ΠΏΠΈΡΡ‡ΠΈΠΊΠΈ
-224 часа
-37 Π΄Π½Π΅ΠΉ
-1130 дСнь
Архив постов
Бколько ссылок создаСтся ΠΏΡ€ΠΈ создании Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ?
Anonymous voting

Π“Ρ€ΠΈΠ½Π°Ρ‚ΠΎΠΌ β€” ИВ-ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€ Росатома β€” ΠΈΡ‰Π΅Ρ‚ экспСрта инфраструктуры Linux Π² Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³Π΅! πŸ‘¨β€πŸ’»Π’Π°ΠΌ прСдстоит администрированиС ОБ Linux ΠΈ Windows, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… сСрвисов ΠΈ обСспСчСниС ΠΈΡ… ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, настройка ΠΈ сопровоТдСниС систСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ логирования, автоматизация развСртывания ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСрвисов ΠΈ Π·Π°Π΄Π°Ρ‡, Π° Ρ‚Π°ΠΊΠΆΠ΅ организация систСм Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΈ восстановлСния. πŸ€ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π°ΠΊΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΎΠ²Π°Π½Π½ΠΎΠΉ ИВ-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Β«Π±Π΅Π»ΡƒΡŽ Π·Π°Ρ€ΠΏΠ»Π°Ρ‚ΡƒΒ» 2 Ρ€Π°Π·Π° Π² мСсяц, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π° счёт ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ВК ΠΈ Π”ΠœΠ‘ (со стоматологиСй) с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ дня. ΠžΡ‚ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² ΠΆΠ΄Ρ‘ΠΌ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами ΠΈ ΠΎΠΏΡ‹Ρ‚ Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ·Π°ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ отСчСствСнных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Каким Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹?
Anonymous voting

πŸ’» Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 2>&1? Π­Ρ‚ΠΎ ΠΏΡ€ΠΎ стандартныС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°. Они ΠΈΠΌΠ΅ΡŽΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы: stdout β€” 1 (ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°) stderr β€” 2 (ΠΏΠΎΡ‚ΠΎΠΊ с ошибками) ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ (2>&1) = stderr > stdout β€” направляСм ΠΏΠΎΡ‚ΠΎΠΊ с ошибками Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°. Ошибки Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° экран Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. πŸ€” Π›ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ 2>1. Но ΡƒΠ²Ρ‹, эта схСма ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. ΠŸΠΎΡ‚ΠΎΠΊ с ошибками stderr Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ», Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ 1. Для этого ΠΈ трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ символ & (ампСрсанд) ΠΏΠ΅Ρ€Π΅Π΄ stdout. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор, Π° Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». πŸ€” А ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ &2>&1 ? Π‘ΠΈΠΌΠ²ΠΎΠ» & интСрпрСтируСтся ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² контСкстС пСрСнаправлСния. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ command &2>&1 анализируСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. command & 2>&1 β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° command Π±ΡƒΠ΄Π΅Ρ‚ выполнятся Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. А Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ‡Π½Π΅Ρ‚ выполнятся ΠΊΠΎΠΌΠ°Π½Π΄Π° 2 с ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° стандартный Π²Ρ‹Π²ΠΎΠ΄ stdout. Π•ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ |&. |& это сокращСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΡ‚ 2>&1 | ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
script.sh |& tee -a /var/log/script.log
ВсС Ρ‡Ρ‚ΠΎ script.sh Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π² ΠΏΠΎΡ‚ΠΎΠΊΠΈ stdout ΠΈ stderr, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π² Ρ„Π°ΠΉΠ» script.log. Π’ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ эту ΡˆΡ‚ΡƒΠΊΡƒ.

ΠŸΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ хранится Π²:
Anonymous voting

Какая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π° ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π΅)?
Anonymous voting

Какая пСрСмСнная содСрТит список ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²?
Anonymous voting

ΠŸΡ€Π°Π²Π° Π½Π° Ρ„Π°ΠΉΠ» -rwxr--r-- ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ:
Anonymous voting

Команда find / -name '*'
Anonymous voting

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ /dev/null ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΡƒΠ΄Π° Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅? Если Π²Ρ‹ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Ρ‚ΠΎ, вСроятно, использовали Ρ„Π°ΠΉΠ» /dev/null для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ: 1️⃣ Π£Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° всю Π½Π΅Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„Ρƒ (прСдупрСТдСния, ошибки ΠΈ Ρ‚.Π΄.):
$ find / -name "*.conf" 2>/dev/null
2️⃣ ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ пустой рСсурс Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π”Π΅Π»Π°Ρ‚ΡŒΡΡ это ΠΌΠΎΠΆΠ΅Ρ‚ с Ρ†Π΅Π»ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈ систСмных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² ΠΈ примСнСния Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Ρ… настроСк Π½Π° сторонС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:
$ picom --config /dev/null
3️⃣ ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»:
$ cat /dev/null > bigfile   
❓ ОкСй, принято, Π° Ρ‡Π΅ΠΌ являСтся этот самый /dev/null? Π’ сущности - это cимвольноС псСвдо-устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ создаСтся Π½Π° этапС запуска систСмы ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…:
$ ls -l
crw-rw-rw- 1 root root 1, 3 Sep 6 08:37 null
О Ρ‚ΠΈΠΏΠ΅ устройства Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΠΈΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ„Π°ΠΉΠ»Π° - c "character". РСсурс удаляСт всС записанноС Π² Π½Π΅Π³ΠΎ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ EOF (End of File). Когда ΠΌΡ‹ взаимодСйствуСм с /dev/null, нСявно ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ядра, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π·Π°ΡˆΠΈΡ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°. Если интСрСсно, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ€Ρ‹Ρ‚ΡŒΡΡ Π² исходниках с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ: drivers/char/mem.c. Код ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ /dev/null, Π½ΠΎ ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ устройствам. Π Π°Π·Π²Π΅Ρ€Π½Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:
$ stat /dev/null

File: /dev/null
Size: 0 Blocks: 0 IO Block: 4096   character special file
Access: (0666/crw-rw-rw-)  Uid: (0/ root)   Gid: (0/ root)
Access: 2025-01-25 14:42:20.101000002 +0300
...
Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 Π±Π°ΠΉΡ‚, для Π½Π΅Π³ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ 0 Π±Π»ΠΎΠΊΠΎΠ² Π½Π° дискС, Π΄Π°Ρ‚Π° создания = Π΄Π°Ρ‚Π° запуска систСмы:
$ who -b  
system boot  2025-01-25 14:42
ΠŸΡ€Π°Π²Π° доступа установлСны Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ любой ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ:
$ echo hello | /dev/null
-bash2: /dev/null: Permission denied
ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Π°ΠΉΠ» Π½Π΅ исполняСмый, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ |. ЕдинствСнный способ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² >, >>.

Если Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ fileA, fileB, fileAB, fileBC ΠΈ fileABC, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄ΠΏΠ°Π΄ΡƒΡ‚ ΠΏΠΎΠ΄ шаблон file[ABC]?
Anonymous voting

πŸ‘©β€πŸ’» Команда rsync rsync - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых популярных инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования. Он позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ². βœ”οΈ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ бэкап:
rsync -av /source/directory/ /destination/directory/
βœ”οΈ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ бэкап Ρ‡Π΅Ρ€Π΅Π· ssh:
rsync -av -e ssh /source/directory/ user@remote_host:/destination/directory/
Rsync ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для зСркалирования Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, копирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² качСствС Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ scp, sftp ΠΈ cp. βš™οΈ Установка:
sudo apt install rsync
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с опциями ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° этой страницС, Π»ΠΈΠ±ΠΎ воспользовавшись ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ man.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для Π²Ρ…ΠΎΠ΄Π° Π² систСму, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹...
Anonymous voting

😱 Как Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ скрипт Рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° случайно/ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ удалился ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ bash-скрипт. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΈΠ΅ ситуации, всСгда Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ исходники Π² git β€” это ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎ, Π½ΠΎ Π±Π΅ΠΊΠ°ΠΏΡ‹ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ отмСнял. Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ с диска, Π½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ„ΠΎΠ½Π΅, Π·Π½Π°Ρ‡ΠΈΡ‚ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ скрипт. touch /tmp/script.sh:
#!/bin/bash
sleep 1000
exit
Π”Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ исполняСмым chmod +x /tmp/script.sh ΠΈ запускаСм Π² Ρ„ΠΎΠ½Π΅ /tmp/script.sh &. Π‘ΠΈΠΌΠ²ΠΎΠ» & ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ command & command, Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выполнятся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Π‘ΠΊΡ€ΠΈΠΏΡ‚ запустили, ΠΎΠ½ крутится Π² Ρ„ΠΎΠ½Π΅. Π£Π΄Π°Π»ΠΈΠΌ сам Ρ„Π°ΠΉΠ»: rm -f /tmp/script.sh ΠšΠ»ΡŽΡ‡ -f ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… вопросов. ВосстанавливаСм:
lsof -c 'script.sh'
На экран вывСдСтся простыня. Нам Π½ΡƒΠΆΠ½Π° строка, Π³Π΄Π΅ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ скрипту:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
script.sh 261899 root 255r REG 8,1 51 130773 /tmp/script.sh
Π‘Π΅Ρ€Π΅ΠΌ PID = 261899, Π±Π΅Ρ€Π΅ΠΌ FD = 255 ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚Π°ΠΊ:
cat /proc/261899/fd/255
А Π²ΠΎΡ‚ ΠΈ исходник скрипта:
File: /proc/261899/fd/255
#!/bin/bash
sleep 1000
exit
Π’ΠΎΡ‚ полСзная ΠΈΠ½Ρ„Π°, которая Π±Ρ‹Π»Π° использована Π² Π³Π°ΠΉΠ΄Π΅: man 5 proc # /proc/[pid]/fd/ man lsof