Ahoj, mám domácí server s Ubuntu 12.04. Je nainstalován na SSD disku a ještě jsou k němu připojeny dva normální. Oba jsou sdílené přes sambu, jeden je také přes fstab nalinkován do adresáře v home uživatele pro FTP přístup. Oba disky se při nečinnosti uspávají. Všiml jsem si jedné podivné věci - když se přihlásím na server přes SSH jako jiný uživatel (který v home nic nemá), chvilku se nic neděje, potom se roztočí disk a až poté mě Putty přihlásí do bashe.
Připadá mi hloupé při každém přihlašování roztáčet disk, který k ničemu nepotřebuji. Můžete mi prosím poradit, jak zjistit, který process to dělá a zatrhnout mu to?
Zkuste, jestli by se to nedalo odpozorovat v iotop.
V iotop se kromě známých procesů objevují ještě:
- sshd: <username> [priv]
- [jbd2/dm-0-8]
Ale přiznám se, že mě to nikam neposunulo. Z iotop ani nezjistím, odkud a jaká data se vlastně čtou.
No tak co se děje.
A) se spouští skripty pro všechny uživatele z etc a pak pro konkrétního uživatel z jeho složky/defaultní
B) se může spustit skript definovaný sshčkem něco jako sshrc
C) se zapisuje do logů
Jestli si nebyl moc chytrý a náhodou třeba nepřesunul logy z SSDčka na obyč disk ;D
Pak, když chce SSH zalogovat úspěšné přihlášení, musí k vůli tomu roztočit disky.
To by totiž celkem slušně odpovídalo popisovanému chování.
Pak tu jsou další vychytávky jako Pam_mount a podobně.
Jo a dej vědět, co to bylo, ne jako většina šulinů, kteří napíšou "díky vyřešeno" a nebo se na to úplně vykašlou, místo toho, aby popsali chybu "hm, byl to log, jestli to čteš a máš stejnej problém, tak si zkontroluj logy!".
Protože blbec může bejt slušnej, že poděkuje za pomoc, ale nikdy neřekne, čím se to nakonec vyřešilo, takže nutí ostatní hádat.
Pokud by to nebylo třeba těma logama, zkusil bych ještě userovi přesunout /home složku na SSD (aby při přihlášení "nevstupoval" na klasické HDD). Pokud už to tak je a já to jen nepochopil, tak se omlouvám :-)
Citace od: freex kdy 22. 10. 2012, 23:35:18když se přihlásím na server přes SSH jako jiný uživatel (který v home nic nemá), chvilku se nic neděje, potom se roztočí disk a až poté mě Putty přihlásí do bashe.
Necte si nahodou bash pri spusteni ~/.bashrc a ~/.profile ? Tim by se to vysvetlovalo.
skusil by som pozriet ake subory otvara sshd .
takze na jednom terminali by som spustil
strace -f -e open -p <pid sshd>
a skusil sa prihlasit na server, ze ake vsetky subory si otvara samotne sshd, a shell.
tipujem logy (/var/log/syslog - /var/log/messages - /var/log/secure atd)
kedze system je na SSD je logicke mat /var a /tmp na klasickom HDD kvoli zivotnosti SSD...
Děkuju za řadu nápadů, pro začátek doplním některé potřehy.
- Celá adresářová struktura včetně / a /home je na SSD disku, točící disky jsou připojeny pouze do složek v /mnt. Jedinou výjimku tvoří složka v /mnt/sdb1/neco, která je přes fstab nalinkována do /home/virtualftp/nekdo/neco, protože vsftpd neumí linky a já ji chci mít sdílenou. Jako uživatel virtualftp se ale nepřihlašuji, dokonce má přístup přes ssh zakázaný.
- V souborech ~/.bashrc a ~/.profile jsem nenašel žádný odkaz do /mnt, oba soubory se nachází na SSD disku.
- Logy i temp se zapisují výhradně na SSD disk. Vím o tom, že má omezený počet zápisů, ale právě z důvodu vypínání ostatních disků jsem se rozhodl to nechat na něm.
- Vyzkoušel jsem strace, ale ve výpisu se neobjevil žádný odkaz na /mnt, /home/virtualftp/nekdo/neco ani /dev/sdb. Abych měl jistotu, nechal jsem strace ještě běžet a zkusím počat, až se disk opravdu vypne a poté se přihlásím.
Ještě mě napadlo, že mám v souboru
rc.local nastaveno vypínání disků pomocí hdparm. Jako další krok ověřím, jestli se tento skript nevolá kromě spuštění serveru také při přihlášení uživatele.
Když unmountneš svazky na těch discích, bude to stále ty disky probouzet? Jestli si třeba jen něco neoťukává HW.
Nene, při unmountu se disk neroztočí.
Co je zajímavé, když jsem po experimentech s unmountem zase všechno připojil přes mount -a, najednou se disk při přihlášení neroztáčí. Uvidíme, jestli to vydrží ;)
Napada me, nemas nejakeho daemonka na hlidani volneho mista? I na $df je nutne roztocit disky.
Dale je mozne, ze to dela samba, pres kterou jsou ty disky exportovany.
Jak uz tu jednou padlo, nejspis za to muze syslog. Ten klasickej syslog, kdyz mu cesta k souboru zacina na pomlcku(dash '-'), tak ten vola fsync pri kazdym zapisu do tohodle souboru. Zrovna treba u /var/log/security to ma smysl (minimalne na serveru).
Pokud si dobre pamatu, tak linux kernel ma nejaky rozhrani v /proc (nebo kde) ktery ti umi rict proc se roztaci ktery disk.
Ten uz si nepamatuju tak se ten mechanismus jmenuje. (Kdybys pouzival LVM od Veritasu tak bych vedel hned).
Kdyz jsem podobny problem resil na sve NAS, pomohl mi block_dump. Viz:
http://www.snowfrog.net/2009/10/29/monitoring-disk-activity-using-block_dump/