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é.