GNU/Linux >> Znalost Linux >  >> Linux

Spravujte adresář Linux /tmp jako šéf

Zvednutím ruky, kolik z vás by rádo restartovalo své servery? Nevidím žádné ruce.

Dlouhá doba provozu je působivá, že? Díky tomu se stanete jedním z úžasných dětí, které se mohou pochlubit 853denní dostupností produkčního systému. Co není tak cool, je to, že vaši uživatelé rádi používají /tmp jako jejich osobní skládku bez ohledu na celkový stav systému nebo na vaše práva na vychloubání. A restartováním se nezbavíte uživatelských souborů, jen systémových – i to je dočasné, dokud se služby nerestartují a uživatelé neotevřou aplikace.

Poznámka: Výjimkou z nesmazání uživatelských dočasných souborů po restartu je povolení tmp.mount , ale to je téma na jiný článek. Navíc jsou pro RHEL 7 a novější skripty pro správu systému.

Je nemožné přinutit uživatele, aby dodržovali zásady odstraňování souborů z /tmp adresář včas. Co má tedy dělat frustrovaný správce systému, když máte desítky, stovky nebo dokonce tisíce /tmp adresáře a uživatelé, se kterými se má jednat? Řešením je nasazení uživatelských skriptů pro správu souborů.

Můžete vytvořit úklidové skripty a umístit je do crontab pravidelně odstraňovat uživatelské soubory z /tmp adresář. Je to nešťastná, ale nezbytná služba pro vaše uživatele. Většina zkušených systémových administrátorů vám řekne, že byste neměli odstraňovat soubory z /tmp pokud ovšem nevíte, že se nepoužívají. To je dobrá rada. Některé služby zapisují soubory zámku do /tmp , některé aplikace jej používají a uživatelé jej používají. Jak tedy určíte, které soubory dokáže váš skript pro úklid bez problémů smést?

[ Bezplatné stažení:cheat pro pokročilé příkazy systému Linux. ]

Co takhle filtrovat soubory podle času posledního přístupu? Je to dobrá volba, pokud vám v /tmp zbývá časový limit na soubory . Pokud například své uživatele upozorníte, že soubory zůstaly v /tmp adresář bude odstraněn, pokud k nim nebyl přístup do dvou dnů, průběžně, měli by to vzít na vědomí. Použití času posledního přístupu pro uživatelské soubory vyřeší problém, pokud vyloučíte také soubory vlastněné uživatelem root. Použijte například:

find /tmp -type f \( ! -user root \) -atime +2

Tento skript zobrazí všechny soubory v /tmp adresář, který nevlastní root, ke kterému se přistupovalo před více než dvěma dny. Nyní přidejte přepínač pro odebrání příkazu:

find /tmp -type f \( ! -user root \) -atime +2 -delete

Zkopírujte tento text do souboru, vytvořte jej spustitelný a vytvořte crontab záznam, který spouští tento skript každých osm hodin. Můžete to například přidat do crontab :

* */8 * * * /opt/scripts/tmp.clean.sh

Tento skript a plán zajistí, že váš /tmp adresář je udržován relativně bez odpadu. Není to však spolehlivé. Pokud se uživatel rozhodne uložit velké množství dat do /tmp adresář, může tato akce způsobit další problémy, například nemožnost přihlásit se do systému přes SSH.

Údržba /tmp adresář není snadný. Uživatelé rádi ukládají soubory do /tmp a nechat je tam na neurčito. Naštěstí pro recidivisty vždy existuje možnost zamknout svůj účet nebo poslat důrazně formulovaný e-mail o ztrátě přístupu do systému, dokud nebude záležitost vyřešena prostřednictvím jejich manažera. Tyto taktiky obvykle upoutají pozornost uživatele a další přestupky jsou vzácné.


Linux
  1. Prozkoumání souborového systému Linux /proc

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Kde je dočasný adresář v Linuxu?

  1. Máme ručně smazat obsah /tmp?

  2. Jaký je rozdíl mezi /tmp a /run?

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?

  1. Jak obnovit smazaný adresář /tmp v Linuxu

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. CentOS / RHEL 6,7 :Proč jsou soubory v adresáři /tmp pravidelně mazány