Co administrator systemu Linux musi wiedzieć na pamięć?

16

Nie jestem administratorem systemu, ale mam dobrą znajomość Linuxa, Unixa, Windowsa i sprzętu.

Jakie są najbardziej potrzebne tematy, które administrator systemu Linux musi znać na pamięć (w momencie, gdy jest w stanie naprawić, skonfigurować, opracować go bez konieczności czytania instrukcji na maksa; sprawdzanie stron podręcznika man, które są wspólne dla dowolnej dystrybucji )?

FOCUS Chciałbym ustawić dla tego byłoby z sieci firmowej do administrowania serwerem, które mogą mieć pewne cechy będą równe większość czasu mają kilka różnych te, jak również. Na przykład nie zawsze zobaczysz serwer FTP dla serwera firmowego, ale prawdopodobnie przez większość czasu widzisz Sambę ...

Nie mówię „książka, którą musisz przeczytać” ani podobnych rzeczy, ale miałem na myśli najbardziej niezbędne funkcje, które prawdopodobnie będą potrzebne w codziennym życiu jako administrator Linuksa.

Lubić:

  1. Jądro, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Squid, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. wiązać
  7. Codzienne problemy
  8. Jakiej funkcji najczęściej używałeś w ciągu dnia

To nie jest lista w kolejności ani najbardziej potrzebna. To tylko nazwa czegoś, co przyszło mi do głowy.

PS: Mam już podstawową wiedzę, ale nie mam codziennego doświadczenia w terenie. Miałem serwery, utworzyłem kilka sieci i tak dalej. Co więcej, mam nawet głęboką wiedzę na temat niektórych jej części. Chciałem po prostu zaktualizować to tutaj, tak jak powiedziałem, że jest to bardziej CODZIENNA LISTA ŻYCIA SYSADMINA LINUXA.

Byłbym wdzięczny, gdybyście mogli wymieniać tematy i na przykład, które pole w nim jest najczęściej używane lub ważne do zapamiętania.

Jeśli uważasz, że moje pytanie jest nieadekwatne, po prostu daj mi znać, a ja je usunę lub jeśli uważasz, że jest ono odpowiednie, ale wymaga dalszej przeróbki, daj mi również znać, a ja postaram się jak najlepiej.

Prix
źródło

Odpowiedzi:

19

Czy na pewno zależy Ci na codziennych czynnościach? Osobiście uważam, że rzeczy, które powinieneś zapamiętać, to rzeczy, które musisz zrobić, gdy coś się zepsuje, a wszyscy oddychają ci do szyi, aby przywrócić sieć. Codzienne rzeczy różnią się w zależności od tego, co robią twoje Linux-y w twojej sieci.

Myślę, że istnieje kilka ważnych umiejętności.

  • Musisz być w stanie skonfigurować sieć za pomocą narzędzi cli, takich jak ifconfig, route i ip.

    • Kilka razy klient dzwonił, twierdząc, że jego awaria Linuksa zawiodła. Kazałem im uruchomić film na żywo. Ale serwer był w sieci bez DHCP (był to DHCP). Po uruchomieniu systemu muszę przeprowadzić ich przez proces uruchamiania sieci i SSH, aby móc się połączyć zdalnie i pomóc im zdiagnozować i naprawić to, co zostało zepsute.
    • Możesz znajdować się w punkcie, w którym nie możesz uzyskać dostępu do Internetu i musisz wiedzieć, jak uzyskać dostęp do Internetu.
  • Myślę, że powinieneś wiedzieć, jak wykonać pełną kopię zapasową systemu za pomocą tar, rsync lub dd. Jeśli nie wiesz, jak wykonać kopię zapasową i przywrócić rzeczy, prawie na pewno nie powinieneś dotykać systemów. Musisz także upewnić się, że kopie zapasowe są tworzone przed wprowadzeniem zmian w systemie.

  • Myślę, że powinieneś wiedzieć, jak uzyskać dostęp do systemów plików z podglądu na żywo na swoich serwerach. Oznacza to, że powinieneś wiedzieć, jak aktywować LVM i programowe dyski RAID, uzyskać dostęp do informacji o partycjach i zamontować systemy plików.

    • Jeśli nie można uruchomić serwera, konieczne może być uzyskanie dostępu do systemu plików i naprawienie czegoś. Trudno będzie wymyślić, jak zamontować rzeczy w nagłych wypadkach. Bądź przygotowany przed czasem.
  • Powinieneś być zaznajomiony z procesem rozruchu, aby móc zmieniać rzeczy podczas rozruchu. Większość systemów korzysta z GRUB, ale możesz napotkać LILO.
    • Co ważne, dowiedz się, jak uruchomić system na różnych poziomach uruchamiania, np. Dla jednego użytkownika.
  • Myślę, że powinieneś mieć przynajmniej praktyczną wiedzę na temat wykonywania podstawowych przechwyceń za pomocą tcpdump i być w stanie odczytać wyniki. Wszystkie ładne funkcje GUI w Wireshark są ładne, ale jeśli coś jest zepsute, możesz nie mieć dostępu do Wireshark.
    • Istnieje wiele problemów z siecią, które udało mi się szybko zidentyfikować i rozwiązać, uruchamiając tcpdump.
Zoredache
źródło
Bardzo fajne uwagi na temat problemu sieciowego i systemu plików doceniają odpowiedź :)
Prix
Are you really sure you care about the day-to-day things?mmmmm, ale problemy inst, które zdarzają się w codziennym życiu jednego z nich? który zaprowadzi cię do funkcji używanych na przykład w sieci ifconfig dhcp, jak powiedziałeś ... debugowanie na jakim poziomie wystąpił problem itp.
Prix
10
Słuszne uwagi. Również w tej linii: powinieneś znać podstawy edytora vi. Bez względu na to, czy używasz Joe, Pico, Emacsa lub MS Word do codziennej edycji, nie będą one dostępne w systemie ratunkowym, a vi jest inny ;)
Sven
1
Dzięki, szukałem pretekstu do spędzenia czasu na nauce więcej niż: q! polecenie w vi.
tovare
nano i vi / vim są zwykle powszechnie dostępne, chociaż widziałem systemy tylko z nano
Fahad Sadah
11

Wiedz, jakie masz narzędzia

Nigdy nie dowiesz się wszystkiego z wyprzedzeniem. Ale ty możesz wiedzieć, co masz do pracy. Im więcej narzędzi znasz, tym więcej będziesz mógł używać. Jeśli wiesz, czym jest to narzędzie, co robi i gdzie można znaleźć więcej informacji na jego temat, to wystarczy, aby zacząć.

Zapoznaj się naprawdę ze manstronami. Nie musisz ich zapamiętywać, ale powinieneś wiedzieć, gdzie znaleźć to, czego szukasz. manstrony są lepsze niż Google pod względem wyszukiwania szczegółów składni, ponieważ strony zainstalowane w danym systemie odzwierciedlają różne dziwactwa lub informacje specyficzne dla wersji, które odpowiadają systemowi, na który patrzysz.

Jeśli używasz apachedużo, zalecam poznanie składni konfiguracji Apache. Jeśli używasz nginxzamiast tego, naucz się tego zamiast tego. Ale tak czy inaczej, powinieneś wiedzieć, czym są oba i jak się różnią.

Narzędzia systemowe

Istnieje kilka narzędzi, które pomogą ci bez względu na rodzaj wykonywanej pracy sysadmin. Zakładając, że znasz podstawy, jak chmod, mountitp, oto kilka bardzo pomocne narzędzia niektórzy administratorzy nie rozumieją wystarczająco dobrze:

  • rsync
  • sar / iostat (część pakietu sysstat)
  • setfacl / getfacl (większość administratorów uważa, że ​​wystarczy chmod / chown)
  • curl i / lub wget
  • iptables
  • kto / ostatni / w

Linia poleceń Ninja

Powiedziałbym, że solidne zrozumienie skryptów powłoki sprawia, że ​​trudne rzeczy są szybkie i łatwe. Jeśli musisz sprawdzić składnię, istnieje duże prawdopodobieństwo, że w ogóle tego nie zrobisz, więc znajomość z wyprzedzeniem jest niezwykle ważna.

Załóżmy na przykład, że masz katalog pełen mysqldumpplików „.sql”, z których każdy reprezentuje bazę danych, którą należy zaimportować na serwer. Czy importujesz wszystkie 35 z nich ręcznie? Jeśli jesteś dobrze zaznajomiony ze skryptami powłoki, naprawdę szybko jest po prostu wpisać jedno polecenie, a następnie wziąć kawę:

Uwaga: Podzieliłem go na osobne linie dla zapewnienia czytelności; jeśli pozostawisz średniki w środku, możesz umieścić wszystko w jednym wierszu. W przeciwnym razie średniki nie będą potrzebne na końcu każdej linii.

 for FILE in *.sql; do 
   NAME=${FILE%.sql}; 
   mysql -e "create database $NAME"; 
   mysql $NAME < $FILE; 
 done

Ponadto zalecam odświeżenie przy użyciu sed. Pomyśl o tym jako o sposobie stosowania wyrażeń regularnych w dowolnym miejscu. http://www.grymoire.com/Unix/Sed.html

Załóżmy, że zmieniłeś numer telefonu i musisz odpowiednio zaktualizować wszystkie strony internetowe (i zapisać kopię zapasową na wypadek, gdybyś się bałagan).

sed -i.bak 's/555-1234/555-4321/' *.html

Bardzo pomocna może być również wiedza o tym, jak właściwie połączyć istniejące narzędzia do robienia nowych rzeczy. Powiedz, że musisz zrobić to samo, co powyżej, ale także przeszukać podkatalogi -

find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'

Przydaje się również trochę doświadczenia perl. Być może nie będziesz musiał pisać z nim żadnych poważnych programów, ale został on zaprojektowany tak, aby robić wiele rzeczy, które robią sedi awkrobią, może tylko trochę bardziej elastycznie.

Perla można użyć do wykonania magii z wiersza poleceń za pomocą -eopcji. Korzystanie z -p, -ni -imożna szybko pisać proste filtry, aby zrobić naprawdę przydatnych rzeczy. Na przykład powiedz, że musisz znaleźć adres IP wszystkich osób, które uzyskały dostęp do pliku „/admin.php” we wrześniu:

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

Widzieć? To nie było takie złe. Jako administrator systemu powinieneś wiedzieć, jak to zrobić.

tylerl
źródło
+1 @tylerl bardzo fajne punkty tutaj zrobione ... często używam perla, aby dopilnować większości rzeczy, które muszę zrobić z linii poleceń i mogę zapewnić, że wiesz, że są one niezbędne! Czy miałbyś coś przeciwko zgłaszaniu problemów, które zwykle trhu również? Chciałbym o tym również przeczytać, po przeczytaniu odpowiedzi Zoredache'a odkryłem, że pojawia się w nich wiele przydatnych rzeczy. Bardzo doceniony !
Prix
9

Jestem administratorem Windows, który trochę zagłębia się w Linuksa, więc nie jestem w stanie bezpośrednio odpowiedzieć na pytanie. Jednak moim zdaniem, kiedy już dobrze zrozumiesz podstawy, jedną najważniejszą rzeczą, którą administrator musi wiedzieć, niezależnie od systemu operacyjnego, jest gdzie i jak znaleźć odpowiedzi.

John Gardeniers
źródło
Info-mining to jedna z moich najlepszych umiejętności. Używam go stale w trakcie służby.
sysadmin1138
cóż, mam już podstawową wiedzę, ale nie mam codziennego doświadczenia w terenie, miałem serwery, stworzyłem kilka sieci, a więc mam nawet głęboką wiedzę w takich częściach ... ale chciałbym aby pogłębić tę wiedzę dzięki temu, co jest tak naprawdę używane codziennie w Linuksie SysAdm, a stamtąd dowiedz się więcej ... jestem bardziej skupiony na tym, aby uzyskać z tego CODZIENNĄ listę życia :)
Prix
2

Oprócz innych odpowiedzi:

Myślę, że powinieneś także wiedzieć, jak radzisz sobie z procesami:

  • podstawowa wiedza na temat tego, jak znaleźć rzeczy w / proc
  • ps, top, vmstat i niektóre z ich bardziej wyrafinowanych spin-offów (ntop, htop itp.)
  • umie interpretować dane wyjściowe co najmniej jednego dobrego narzędzia do monitorowania, takiego jak nagios (może to być przesada) lub Munin.

Myślę, że nie musisz opanować sed (przynajmniej nie wiem), udaje mi się z łatwością poradzić sobie z jednym z greps (grep, egrep, zgrep itp.). Musisz jednak znać podstawową składnię wyrażeń regularnych.

Myślę, że powinieneś znać podstawowe polecenia do manipulowania i / lub monitorowania MTA (postfiks lub exim) i MDA (dovecot, cyrus, kurier), jeśli zarządzasz serwerem pocztowym. Nawet jeśli go nie uruchomisz, będziesz w stanie przeprowadzić podstawowe testy SMTP na MTA, choćby w przypadku problemów z dostawą lokalną.

Powinieneś znać swoją metodę korzystania z systemu uwierzytelniania (PAM, LDAP). Gdzie są przechowywane twoje hasła? używając jakich procedur? Jakie aplikacje używają jakich mechanizmów uwierzytelniania?

Jaspis
źródło
iotop :) takie świetne narzędzie, z którym nie mogę żyć bez ps ... Tak, to albo te polecenia, albo język taki jak perl, python, php, który można uruchomić z wiersza poleceń, robiąc to, czego potrzebujesz.
Prix
2

Jest kilka rzeczy, które koniecznie musisz wiedzieć.

Musisz dobrze zrozumieć swoją powłokę (jak analizuje argumenty, jak rozwija symbole wieloznaczne, gdzie są małe, narożne przypadki).

Musisz mieć możliwość edycji plików bez uruchomionego X11.

Musisz mieć możliwość montowania i odmontowywania systemów plików.

Musisz mieć możliwość szybkiego przyswajania nowych informacji. Ponieważ są to umiejętności, których potrzebujesz, gdy załamała się farma serwerów całej firmy, a ty masz dostęp tylko przez piddly serwer konsoli (to „konsola” jak w porcie szeregowym) i / lub bardzo wolne połączenie VPN (tworząc coś w oparciu o X11 bolesny). I tak się stanie, więc zaplanuj to.

Vatine
źródło
2

Podane przykłady są świetnymi odpowiedziami związanymi z serwerem .. jednak .. Administracja systemem nigdy nie jest w 100% komputerowa .. Szkoda, że ​​tak nie było!

W naszym przypadku musisz także radzić sobie z ludźmi, co oznacza, że ​​jest to Manglement, Lusers, Kontrahenci i Dostawcy .. arg ^ n

Umiejętność obsługi klienta, umiejętność mówienia o tym, czego potrzebujesz / chcesz / masz do zrobienia, uzyskiwanie informacji dla innych osób, dokumentacja, są niezbędne w utrzymaniu pracy sysadmin.

Jeśli chcesz otrzymać i sfinansować swoje projekty: Nie ma sensu próbować nowego serwera, jeśli nie wiesz, jak poprosić o pieniądze, jeśli nie masz danych liczbowych / alternatyw / planu DR / ofert / planu wdrożenia itd. Polityka biurowa to B ** CH, pieniądze to zawsze: „Tight” .. cokolwiek to znaczy… nie wpływa na samochody służbowe, ale wpłynie na bezpieczeństwo Twojej witryny i możliwość standaryzacji, jeśli możesz nie wyświadczaj im swoich powodów.

Powiedziałbym najważniejszą rzecz do zapamiętania: NIE ZAUFAJ CO MÓWI UŻYTKOWNIK . Miej to na uwadze, odbierając telefon. Bez względu na to, co powiedzą, nadal będziesz musiał sam to zrozumieć, ponieważ to ostatecznie twój tyłek, a nie ich, i na ogół nie mają pojęcia. To, że potrafią ułożyć akapit z modnym hasłem, by oszołomić twojego szefa, nie oznacza, że ​​tak naprawdę wiedzą, co właśnie powiedzieli.

Inne przemyślenia:

  • Upewnij się, że masz wystarczająco dużo czasu na zasilaczu UPS, aby wyłączyć wszystko, gdy nastąpi awaria zasilania

  • Monitorowanie, upewnij się, że WIESZ, że spadł .. nie czekaj, aż luser zadzwoni.

  • BACKUPS BACKUPS BACKUPS .. systemy dla wielu użytkowników są podatne na nadgodziny, jeśli nie masz dobrego systemu tworzenia kopii zapasowych. Nadgodziny są złe (nie dla twojej kieszeni, ale dla twojego budżetu i profesjonalizmu).

  • NIGDY NIGDY NIE ZMIENIAJ W PIĄTEK, ani w dzień przed wakacjami. W weekend zadzwonisz, będziesz musiał to naprawić, będziesz miał naprawdę kiepski czas…

  • Standaryzuj i automatyzuj ... jak tylko możesz! Jeśli możesz to napisać, dlaczego nie?

  • Dowiedz się, jak używać / instalować system pomocy technicznej, aby użytkownicy rejestrowali przez niego połączenia, pozwoli ci to śledzić twoje działania, zapewni wyższym bodźcom motywację do płacenia ci więcej za pracę, którą wykonujesz, i pozwoli ci nagrywać twoje odpowiedzi (defacto KB) .. wszystko podczas informowania użytkownika o postępie. Zapewnia, że ​​zapytania / problemy użytkowników nie gubią się w powodzi. (Spiceworks jest bezpłatny, istnieje wiele innych)

  • Kupiłem egzemplarz: The Practice of System Administration autorstwa Limoncelli, bardzo go polecam.

Grizly
źródło
1

Administrator systemu Linux musi dokładnie zrozumieć uprawnienia do plików , a także korzystanie z narzędzi takich jak su i sudo , chmod i chown itp., Jak dodać użytkownika do grupy lub utworzyć nowych użytkowników, jak nadać uprawnienia SSH niektórym użytkownikom lub grupy.

thomasrutter
źródło
0

Musisz być szybki dzięki edytorowi w wierszu poleceń.

Logan
źródło
0

Dowiedz się sed, grepi awk: wiele z tego, co robię codziennie jako administrator systemu Linux, zawiera ogromną listę plików / komputerów / użytkowników / itp. i przekształcić dane wejściowe w inny zestaw danych wyjściowych do użycia przez inny program.

Konkretnym przykładem tego jest pobieranie listy uszkodzonych komputerów z, powiedzmy, Bugzilli lub RT, zbieranie wszystkich obcych informacji, które szybko skopiowałem i wkleiłem do dokumentu tekstowego za pomocą jednego z tych trzech narzędzi powyżej, a następnie wyprowadzam rozdzielana spacjami lista węzłów, do których muszę włączyć SSH.

Ponadto zdecydowanie musisz znać górne limity używanej powłoki. Częściej niż nie, jeśli musisz usunąć kilka starych plików, prawdopodobnie natkniesz się na folder zawierający ponad 30 000 plików. rm *nie będzie działać, ponieważ gwiazdka zostanie rozwinięta do listy zawierającej ponad 30 000 pozycji, a używana powłoka prawdopodobnie nie będzie w stanie przechowywać listy o takim rozmiarze. Sposób rozwiązania tego polega na xargs: zamiast rm *, użyjesz ls | xargs -i{} rm {}, co będzie działać.

Christian Paredes
źródło
0

Jako sysadmin uważam się za lekarza cyfrowego (lub, w zależności od dnia, czasami światowej klasy chirurga mózgu).

Gdy wszystko zadziała, będziesz mieć mnóstwo czasu na doskonalenie swoich umiejętności i administrowanych systemów.

Gdy coś zawiedzie, musisz być w stanie natychmiast zdiagnozować problem i zrozumieć, jak go naprawić.

Musisz więc nauczyć się / zapamiętać podstawy (a także do pewnego stopnia wewnętrznych) serwerów i aplikacji, którymi zarządzasz. Załóżmy, że Twoja firma hostuje witrynę internetową z katalogiem głównym obsługiwanym przez NFS. Nagle wszystkie węzły www zaczynają alarmować, a strona przestaje odpowiadać. Co podejrzewać? Ah-ha! Serwer NFS właśnie przestał działać, a klaster pracy awaryjnej również z jakiegoś powodu nie działał.

Innym ważnym aspektem do nauczenia się jest podstawowe obciążenie administrowanych serwerów. Naucz się zapamiętywać ich średnie obciążenie, użycie procesora, użycie pamięci i tym podobne. OK, nie musisz zapamiętywać tego wszystkiego - wykresy utworzone za pomocą Cacti lub net-snmp + mrtg mogą bardzo pomóc, ale jeśli twój pager alarmuje o dziwnym zachowaniu się serwera X, a jednocześnie helpdesk dzwoni do ciebie mówiąc o innych serwer lub usługa będą mieli problemy, możesz połączyć te dwie rzeczy i przejść do naprawy, nawet zanim przejrzysz dzienniki, historię alarmów lub wykresy.

Przygotuj się także na najgorsze: zastanów się, co byś zrobił, gdyby całe centrum danych uległo awarii z powodu awarii zasilania. Jak byś uruchomił wszystko po ponownym udostępnieniu prądu? Co byś zrobił, gdyby coś się nie uruchomiło? Jak przywrócisz kopie zapasowe? A co byś zrobił, gdyby ktoś ostrzegł cię o włamywaczu, który właśnie włamał się na twoje serwery? (Tego rodzaju rzeczy powinny być udokumentowane jako lista kontrolna, ale dobrze też mieć intuicję)


I, jak wspominają inni, kontynuuj pisanie skryptów rzeczy, które powinny działać (częściowo) automatycznie. Ucz się i baw się z powłoką / Perlem, naprawdę są twoimi najlepszymi przyjaciółmi i bardzo często potrafią rozwiązać bardzo złożone problemy za pomocą tylko kilku poleceń.

Janne Pikkarainen
źródło