5 príkazov v termináli Linuxu, ktoré opravujú väčšinu mojich systémových problémov


Aj keď sú systémy Linux pomerne stabilné, každodenné používanie môže spôsobiť určité chyby. Niekoľko distribúcií Linuxu obsahuje nástroje s grafickým rozhraním, ale najspoľahlivejšie opravy sa dejú v termináli, pretože poskytuje presnejšiu kontrolu nad opravami.

Po niekoľkých rokoch riešenia mnohých týchto problémov s Linuxom som si vytvoril zásobu terminálových príkazov, ktoré mi pomáhajú takmer pri každom probléme, na ktorý narazím. Nie sú to len príkazy, ktoré spustíte na nových systémoch a zabudnete; sú to každodenné nástroje.

Opravte poškodené balíky skôr, než sa rozšíria

Opravte chyby závislostí a nedokončené inštalácie správnym spôsobom

Na Linuxe sa celé balíky môžu stať nestabilnými, keď je aktualizácia alebo inštalácia softvéru prerušená, alebo ak sa určité závislosti nepodarí vyriešiť. To často spôsobuje, že existujúce aplikácie sa nespustia, a niekedy zlyhajú aj nové inštalácie.

Na opravu tohto spustím nasledujúce príkazy v poradí:

sudo dpkg --configure -a 
sudo apt --fix-broken install 
sudo apt clean 
sudo apt autoremove

Vyššie uvedené príkazy sú špecifické pre Debian/Ubuntu (APT/dpkg). Na Fedoru použite sudo dnf distro-sync; na Arch použite sudo pacman -Syu.

Spúšťam ich v tomto poradí, aby som mohol obnoviť rozbitý balíčkový systém bez preinštalovania operačného systému. Ktorákoľvek z nasledujúcich situácií môže byť mojím signálom na spustenie vyššie uvedených príkazov:

  • Inštalácie softvéru zlyhávajú kvôli chybám závislostí
  • Aktualizácie sa zastavujú v polovici
  • Správca balíkov hlási poškodené balíky
  • Aplikácie zlyhávajú po aktualizácii systému

Prvý príkaz používam na dokončenie inštalácie akéhokoľvek neúplného balíka. Príkaz --fix-broken rieši nesplnené závislosti stiahnutím a inštaláciou toho, čo chýba. Príkaz clean odstraňuje uložené súbory balíkov v cache, zatiaľ čo príkaz autoremove odstraňuje nepotrebné balíky, ktoré boli automaticky nainštalované na uspokojenie závislostí iného balíka.

Zistite, čo potichu zapĺňa váš disk

Odhaľuje náročné aplikácie na úložisko priamo v termináli

Podľa mojich skúseností sú problémy s miestom na disku na Linuxe celkom bežné. Tieto problémy môžu byť spôsobené postupným hromadením logov a dočasných súborov. Môže ich tiež spôsobiť veľká cache. Pre mňa sú bežnými páchateľmi zvyčajne moje Docker obrázky a kontajnery, staré jadra a cache aplikácií.

Ak je Docker zodpovedný za zapĺňanie vášho disku, môžete bezpečne odstrániť zastavené kontajnery spustením príkazu docker system prune. Tento príkaz tiež odstráni neoznačené obrazy, ktoré nie sú používané žiadnym kontajnerom, a nepoužívanú zostavovaciu cache. Ak chcete uvoľniť viac miesta odstránením všetkých nepoužívaných obrazov, pridajte prepínač -a: docker system prune -a

Niektorý z týchto príznakov môže byť pripomienkou skontrolovať využitie disku:

  • Disky sa napĺňajú rýchlejšie, než sa očakávalo
  • Aktualizácie systému sa odmietajú inštalovať
  • Pomalé operácie so súbormi
  • Varovania o nízkom mieste na disku

Spustím df -h, aby som zobrazil celkové využitie disku. Na lokalizáciu veľkých adresárov spustím:

sudo du -sh /* 2>/dev/null | sort -rh | head -20

Keď je to hotové, môžem zúžiť svoj vyhľadávanie na konkrétne adresáre, aby som našiel, čo zabíja miesto, a môžem použiť príkaz ncdu /, len aby som mal jednoduchší, interaktívny pohľad. Keď začnem z tohto koreňového adresára, je jednoduchšie vidieť problémy na systémovej úrovni, ktoré by sa zvyčajne nezobrazili v grafických nástrojoch.

Pred spustením príkazu ncdu musí byť nainštalovaný na vašom počítači. Môžete použiť tento príkaz: sudo apt install ncdu

Resetujte sieťové pripojenie bez reštartovania systému

Vyprázdniť DNS, reštartovať rozhrania a overiť konektivitu

Celkom často problémy s sieťou pochádzajú z vášho počítača, nie z routera alebo poskytovateľa internetu. Bežné spúšťače sú zastarané DNS záznamy, nereagujúce sieťové služby alebo chyby rozhrania. Existuje niekoľko príkazov, ktoré používam na nakoniec vyriešenie problému, a mojím signálom na vyskúšanie týchto príkazov je ktorýkoľvek z nasledujúcich prípadov:

  • Webové stránky sa zasekávajú alebo sa načítavajú čiastočne
  • Chyby „Dočasné zlyhanie pri rozlíšení mena“
  • Prerušené sťahovanie alebo nahrávanie
  • Ostatné zariadenia fungujú normálne, zatiaľ čo môj systém je offline

Prvým krokom je identifikovať sieťové rozhranie. Tento príkaz s tým pomáha: ip link show. Potom spustím tento príkaz na vyčistenie mojej DNS cache: sudo resolvectl flush-caches.

Na starších systémoch môžete namiesto toho spustiť ekvivalentný príkaz: sudo systemd-resolve --flush-caches

Ďalej spustite dva príkazy nižšie na resetovanie sieťového rozhrania:

sudo ip link set  down
sudo ip link set  up

Nakoniec môžete použiť príkaz ping na otestovanie pripojenia:

ping -c 4 google.com

Na systémoch, ktoré používajú NetworkManager, priame použitie príkazu ip link môže spôsobiť, že NetworkManager prepíše vaše zmeny. Nižšie uvedené príkazy nmcli vykonajú trvalé obnovenie cez NetworkManager.

nmcli networking off
nmcli networking on

Prestaňte hádať, prečo sa váš systém zdá pomalý

Okamžite zoradiť využitie CPU, pamäte a disku






Nie je nezvyčajné, že váš počítač občas pôsobí pomaly. Napriek tomu to stojí za to skontrolovať, najmä keď spomalenia nenastávajú pri náročných úlohách. Všimol som si, že často môže spomalenia spôsobiť nekontrolovaný proces, tlak na pamäť alebo vysoká aktivita disku. V momente, keď si všimnem niektorý z nižšie uvedených príznakov, začnem problém skúmať:

  • Aplikácie zamŕzajú alebo reagujú pomaly
  • Vysoká aktivita ventilátora
  • Časté výkyvy CPU
  • Pomalá reakcia pracovnej plochy

Najprv používam príkaz top na zobrazenie aktuálneho využitia systémových zdrojov. Potom spustím tento príkaz: top -b -n 1 | head -20, aby som zachytil snímku aktívnych procesov. Ďalej spustím tento príkaz, aby som zistil, ktoré procesy spotrebúvajú pamäť: ps aux --sort=-%mem | head -10. Ak potrebujete monitorovať aktivitu diskového I/O, spustite tento príkaz: iostat -x 1 3.

Ak nie je nainštalovaný iostat, nainštalujte balík sysstat (napríklad sudo apt install sysstat na Debian/Ubuntu).

Môžete tiež použiť príkaz htop, ak uprednostňujete interaktívnejší prehliadač procesov. Keď nájdete nevhodne sa správajúci proces, zaznamenajte jeho PID a najprv sa ho pokúste ukončiť správnym spôsobom príkazom kill PID, ktorý odošle signál SIGTERM a dá procesu šancu uložiť údaje a ukončiť sa elegantne. Ak proces nereaguje, ukončite ho príkazom: kill -9 PID ako poslednú možnosť.

Opravte chyby súborového systému skôr, než spôsobia stratu dát

Spustite fsck bezpečne a overte integritu disku

Pri používaní počítača očakávajte systémové chyby. Náhla strata napájania, hardvérové poruchy alebo nesprávne vypnutie sú ľahko spúšťané faktory. Skutočný problém však spočíva v tom, že tieto chyby sa môžu hromadiť a spôsobiť zmiznutie súborov. V niektorých prípadoch môže počítač prestať správne nabiehať. Bežné príznaky, ktoré vidím pred opravou systémových súborov, sú:

  • Súbory sa nepodarilo otvoriť
  • Neočakávané chyby čítania alebo zápisu
  • Súborové systémy prechádzajú do režimu iba na čítanie

Pred vykonaním akýchkoľvek väčších opráv spustite nižšie uvedený príkaz na identifikáciu partície: lsblk

Spustite fsck iba na odpojených partíciách; jeho spustenie na pripojených súborových systémoch môže spôsobiť vážne poškodenie dát.

Zvyčajne spustím len na čítanie sken pred tým, ako použijem akékoľvek automatické opravy pomocou nižšie uvedeného príkazu:

sudo fsck -n /dev/sdX

Ak zaznem akékoľvek chyby, ktoré potrebujem spustiť automaticky, spustím nasledujúci príkaz (prepínač -y implementuje opravy bez ďalších výziev):

sudo fsck -y /dev/sdX

Je bezpečné spustiť fsck z live USB prostredia, keď potrebujete skontrolovať koreňový súborový systém. Tiež používam nástroje ako smartctl na zistenie zlyhávajúcich diskov.

Pár príkazov dokáže vyriešiť väčšinu problémov v Linuxe

Odporúčam určité všeobecné príkazy na každodenné použitie. Avšak pre riešenie bežných problémov v Linuxe budú tieto päť skupín príkazov vašou najlepšou voľbou. Riešenie mnohých problémov zaberie len niekoľko minút. Môžete riešiť problémy z grafického rozhrania, ale terminál umožňuje pokročilejšie riešenie problémov.

Súvisiace články