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 autoremoveVyšš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 -20Keď 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.comNa 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 onPrestaň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/sdXAk 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/sdXJe 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.









