Cosa deve sapere un amministratore Linux a testa?


16

Non sono amministratore di sistema, ma ho una buona conoscenza di Linux, Unix, Windows e hardware.

Quali sono gli argomenti più necessari che un amministratore Linux deve conoscere a memoria (al punto di essere in grado di risolvere, installare, elaborare senza dover leggere al massimo il manuale; controllare le pagine man che sono comuni a qualsiasi distribuzione )?

Il FOCUS che mi piacerebbe impostare per questo sarebbe dalla rete aziendale all'amministrazione del server che potrebbe avere alcune caratteristiche uguali e il più delle volte ne avrà anche altre diverse. Come ad esempio non vedrai sempre un server FTP per un server aziendale ma probabilmente vedrai Samba il più delle volte ...

Non sto dicendo "libro che devi leggere" o cose del genere, ma intendevo le funzionalità più necessarie che probabilmente saranno necessarie nella tua vita quotidiana come amministratore di Linux.

Piace:

  1. Kernel, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Calamari, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. legare
  7. Problemi quotidiani affrontati
  8. Qual è la funzione che hai usato di più durante il giorno

Questo non è un elenco in ordine né il più necessario. Nomina solo qualcosa che mi è venuto in mente.

PS: ho già le conoscenze di base, ma non ho un'esperienza quotidiana sul campo. Ho avuto server, creato reti e così via. Inoltre ho anche una profonda conoscenza di alcune parti di esso. Volevo solo aggiornarlo qui, come ho già detto, è più un ELENCO GIORNALIERO DI UNA VITA SYSADMIN LINUX.

Gradirei se voi / ragazze poteste elencare argomenti e, ad esempio, quale campo al suo interno sia il più usato o importante da memorizzare.

Se ritieni che la mia domanda non sia adatta, fammelo sapere e la cancellerò da solo o se ritieni che sia adatta, ma debba essere rielaborata di più, fammelo sapere e farò del mio meglio.

Risposte:


19

Sei davvero sicuro di preoccuparti delle cose quotidiane? Personalmente penso che le cose che dovresti aver memorizzato siano le cose che dovrai fare quando qualcosa si romperà, e tutti ti respireranno al collo per ripristinare la rete. Le cose quotidiane tendono a variare in base a ciò che stanno facendo le tue scatole Linux sulla tua rete.

Penso che ci siano alcune abilità che sono piuttosto importanti.

  • Devi essere in grado di configurare la rete usando solo strumenti cli come ifconfig, route e ip.

    • Alcune volte un client ha chiamato dicendo che la loro scatola Linux era fallita. Li ho fatti avviare un livecd. Ma il server era su una rete senza DHCP (era il DHCP). Una volta avviato il sistema, ho bisogno di guidarli attraverso l'avvio della rete e SSH in modo da poter connettermi in remoto e aiutarli a diagnosticare e riparare ciò che è stato rotto.
    • Potresti essere in un punto in cui non puoi accedere a Internet e dovrai sapere come collegarti online.
  • Penso che dovresti sapere come fare un backup completo del sistema usando tar, rsync o dd. Se non sai come eseguire un backup e ripristinare le cose, quasi sicuramente non dovresti toccare i sistemi. È inoltre necessario assicurarsi che vengano effettivamente eseguiti i backup prima di apportare modifiche al sistema.

  • Penso che dovresti sapere come accedere ai filesystem da un livecd sui tuoi server. Ciò significa che dovresti sapere come attivare LVM e le unità basate su RAID software, accedere alle informazioni sulla partizione e montare i file system.

    • Se il server non è avviabile, potrebbe essere necessario accedere al file system e correggere qualcosa. Sarà piuttosto doloroso cercare di capire come montare effettivamente le cose in caso di emergenza. Preparati in anticipo.
  • Dovresti avere abbastanza familiarità con il processo di avvio per poter cambiare le cose all'avvio. La maggior parte dei sistemi usa GRUB, ma potresti imbatterti in LILO.
    • È importante sapere come avviare diversi livelli di esecuzione, ad esempio un singolo utente.
  • Penso che dovresti avere almeno una conoscenza pratica di come eseguire alcune acquisizioni di base con tcpdump ed essere in grado di leggere i risultati. Tutte le belle funzionalità della GUI di Wireshark sono buone, ma se qualcosa non funziona potresti non essere in grado di accedere a Wireshark.
    • Esistono numerosi problemi di rete che sono stato in grado di identificare e risolvere rapidamente eseguendo tcpdump.

Molto belli i punti sollevati sulla questione della rete e il file system apprezzano la risposta :)
Prix

Are you really sure you care about the day-to-day things?mmmmm ma inst problemi che accadono parte della vita quotidiana di uno? che ti porterà alle funzionalità utilizzate per esempio ifconfig dhcp di rete come hai detto ... debug a quale livello si verifica il problema, ecc.
Prix

10
Punti buoni. Anche lungo quella linea: dovresti conoscere le basi dell'editor vi. Indipendentemente se usi joe, pico, emacs o MS Word per le tue modifiche quotidiane, queste non saranno disponibili in un sistema di salvataggio e vi è diverso ;)
Sven

1
Grazie, stavo cercando una scusa per dedicare più tempo all'apprendimento del: q! comando in vi.
tovare

nano e vi / vim sono generalmente universalmente disponibili, anche se ho visto sistemi con solo nano
Fahad Sadah,

11

Scopri quali strumenti hai

Non saprai mai tutto in anticipo. Ma puoi sapere con cosa devi lavorare. Più strumenti conosci, più sarai in grado di utilizzare. Se sai cos'è lo strumento, cosa fa e dove trovare maggiori informazioni su di esso, allora è abbastanza buono per iniziare.

Familiarità con le manpagine. Non devi memorizzarli, ma dovresti sapere dove trovare quello che stai cercando. manle pagine sono migliori di Google per cercare i dettagli della sintassi, poiché le pagine installate su un determinato sistema riflettono le varie stranezze o informazioni specifiche della versione che corrispondono al sistema che stai guardando.

Se usi apachemolto, ti consiglio di imparare la sintassi della configurazione di Apache. Se nginxinvece lo usi , impara invece quello. Ma in entrambi i casi, dovresti sapere cosa sono entrambi e come sono diversi.

Strumenti di sistema

Ci sono alcuni strumenti che ti aiuteranno indipendentemente dal tipo di lavoro di amministratore di sistema che stai facendo. Supponendo che tu conosca le basi, comechmod , mountecc., Ecco alcuni strumenti molto utili che alcuni amministratori non comprendono abbastanza bene:

  • rsync
  • sar / iostat (parte del pacchetto sysstat)
  • setfacl / getfacl (la maggior parte degli amministratori pensa che chmod / chown sia tutto ciò con cui devi lavorare)
  • ricciolo e / o wget
  • iptables
  • chi / ultimo / sett

Riga di comando Ninja

Direi che una solida comprensione degli script di shell fa miracoli per rendere le cose difficili facili e veloci. Se devi cercare la sintassi, allora è probabile che non lo farai affatto, quindi conoscere in anticipo è fondamentale.

Ad esempio, supponiamo che tu abbia una directory piena di mysqldumpfile ".sql", ognuno dei quali rappresenta un database che deve essere importato nel server. Li importa tutti e 35 manualmente? Se hai ragionevolmente familiarità con gli script di shell, è davvero semplice digitare un comando e poi prendere un caffè:

Nota: l'ho diviso in righe separate per la leggibilità; se lasci i punti e virgola dentro, puoi mettere tutto in una riga. Altrimenti i punti e virgola non sono necessari alla fine di ogni riga.

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

Inoltre, consiglio di ripassare l'utilizzo sed. Pensalo come un modo per applicare espressioni regolari ovunque. http://www.grymoire.com/Unix/Sed.html

Supponi di aver modificato il tuo numero di telefono e di dover aggiornare di conseguenza tutte le tue pagine Web (e di salvare una copia di backup in caso di errori).

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

Sapere come concatenare correttamente gli strumenti esistenti per fare cose nuove può essere davvero utile. Supponi che devi fare lo stesso come sopra, ma cerca anche nelle sottodirectory:

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

È anche utile avere qualche esperienza con perl. Potrebbe non essere necessario scrivere alcun programma serio con esso, ma è stato progettato per fare molte delle cose che sedeawk , forse solo un po 'più flessibile.

Perl può essere usato per fare magie da riga di comando usando l' -eopzione. Utilizzo con -p, -ne -i, si può scrivere velocemente filtri semplici per fare cose veramente utili. Ad esempio, supponiamo che sia necessario trovare l'indirizzo IP di tutti coloro che hanno avuto accesso a "/admin.php" a settembre:

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

Vedere? Non è stato poi così male. Come amministratore di sistema, devi sapere come fare queste cose.


+1 @tylerl punti molto belli fatti qui ... spesso uso il perl per inchiodare la maggior parte delle cose che devo fare con la riga di comando e posso assicurarti che quelli sono un must! Ti dispiacerebbe pubblicare alcuni problemi che di solito esegui anche trhu? Vorrei leggere anche questo, dopo aver letto la risposta di Zoredache ho scoperto che molte cose utili nascono in quelle. Molto apprezzato !
Prix

9

Sono un amministratore di Windows che si diletta un po 'in Linux, quindi non sono in grado di rispondere direttamente alla domanda. Tuttavia, secondo me una volta che hai una discreta comprensione delle basi, l'unica cosa più importante che un amministratore deve sapere, indipendentemente dal sistema operativo, è dove e come trovare le risposte.


L'estrazione di informazioni è una delle mie migliori abilità. Lo uso costantemente nel corso del dovere.
sysadmin1138

bene ho già le conoscenze di base ma non ho un'esperienza quotidiana sul campo, ho avuto server, creato alcune reti, e quindi ho anche qualche conoscenza profonda in così parti di esso ... ma vorrei per migliorare ulteriormente questa conoscenza con ciò che viene realmente utilizzato quotidianamente per un SysAdm di Linux e da lì apprendere di più ... Sono più concentrato su ottenere un elenco di vita GIORNALIERO da questo :)
Prix

2

Oltre alle altre risposte:

Penso che dovresti anche sapere come gestire i processi:

  • conoscenza di base dove trovare materiale in / proc
  • ps, top, vmstat e alcuni dei loro spin-off più sofisticati (ntop, htop, ecc.)
  • saper interpretare l'output di almeno un buon strumento di monitoraggio come nagios (potrebbe essere eccessivo) o munin.

Penso che non sia necessario padroneggiare sed (lo so, almeno non lo so), riesco a cavarmela facilmente con una delle greps (grep, egrep, zgrep, ecc.). Tuttavia, devi conoscere la sintassi di base delle espressioni regolari.

Penso che dovresti conoscere i comandi di base per manipolare e / o monitorare MTA (postfix o exim) e MDA (dovecot, cyrus, corriere) se mantieni un server di posta. Anche se non ne esegui uno, dovrai essere in grado di eseguire test SMTP di base su un MTA, anche solo per problemi di consegna locale.

Dovresti conoscere il modo in cui usi il sistema di autenticazione (PAM, LDAP). Dove sono archiviate le password? usando quali procedure? Quali applicazioni utilizzano quali meccanismi di autenticazione?


iotop :) un ottimo strumento che non riesco a vivere anche senza ps ... Sì, sono questi comandi o un linguaggio come perl, python, php che puoi eseguire dalla riga di comando facendo quello che ti serve.
Prix

2

Ci sono alcune cose che DEVI assolutamente sapere.

Devi avere una buona conoscenza della tua shell (come analizza gli argomenti, come espande i caratteri jolly, dove si trovano i casi angolari).

Devi essere in grado di modificare i file senza X11 in esecuzione.

Devi essere in grado di montare e smontare i file system.

Devi avere la capacità di assorbire rapidamente nuove informazioni. Perché queste sono le competenze di cui hai bisogno quando la server farm dell'intera azienda si è arrestata in modo anomalo e hai accesso solo tramite un server console piddly (che è "console" come nella porta seriale) e / o una connessione VPN molto lenta (rendendo tutto basato anche su X11 doloroso). E accadrà, quindi pianificalo.


2

Gli esempi forniti sono tutte ottime risposte relative al server .. tuttavia .. L'amministrazione del sistema non è mai al 100% di computer .. Vorrei che lo fosse!

Anche tu hai a che fare con le persone, nel nostro caso, ciò significa Manglement, Luser, Contractors e Fornitori .. arg ^ n

Le competenze del servizio clienti che sanno come parlare di ciò di cui hai bisogno / desideri / cose da fare, ottenere informazioni ad altre persone, la documentazione, tutto sono essenziali per mantenere tuo lavoro da amministratore di sistema.

Se vuoi che i tuoi progetti vengano finanziati e utilizzati: non ha senso cercare di ottenere un nuovo server se non sai come chiedere i soldi, se non hai le cifre / alternative / piano DR / quotazioni / piano di implementazione ecc. La politica dell'ufficio è una B ** CH, il denaro è sempre: "stretto" .. qualunque cosa significhi .. non influisce sulle auto della compagnia esecutiva, ma influenzerà la sicurezza del tuo sito e la capacità di standardizzare se puoi non impressionare su di loro le tue ragioni.

Direi la cosa più importante da ricordare: NON FIDARTI DI COSA DICE UN UTENTE . Tienilo a mente quando rispondi al telefono .. non importa quello che dicono, dovrai comunque capirlo da solo, perché alla fine è il tuo culo, non il loro, e generalmente non ne hanno idea. Solo perché possono mettere insieme un paragrafo carico di parole d'ordine per rovinare il tuo capo, non significa che sappiano davvero quello che hanno appena detto.

Altri pensieri:

  • Accertarsi di avere abbastanza tempo sull'UPS per spegnere tutto QUANDO l'alimentazione si interrompe

  • Monitoraggio, assicurati di SAPERE che è andato giù .. non aspettare che gli utenti telefonino.

  • BACKUPS BACKUPS BACKUPS .. i sistemi multiutente sono inclini agli straordinari se non si dispone di un buon sistema di backup .. gli straordinari fanno male (non per tasca, ma per budget e aspetto di professionalità).

  • Non cambiare MAI NIENTE IN UN VENERDÌ, o il giorno prima di una vacanza .. verrai chiamato durante il fine settimana, dovrai sistemarlo, avrai un brutto momento ..

  • Standardizza e automatizza .. quanto più puoi! Se riesci a copiarlo, perché non l'hai fatto?

  • Scopri come utilizzare / installare un sistema di helpdesk, fare in modo che gli utenti registrino le chiamate attraverso di esso, ti consentirà di tracciare le tue attività, fornire agli alti incentivi per pagarti di più per il lavoro che fai e consentirti di registrare le tue risposte (defacto KB) .. tutto mentre informa l'utente dell'avanzamento. Assicura che le domande / i problemi degli utenti non vadano persi durante l'inondazione. (Spiceworks è gratuito, ce ne sono molti altri)

  • Ho acquistato una copia di: The Practice of System Administration , di Limoncelli, lo consiglio vivamente .


1

Un amministratore Linux deve comprendere a fondo le autorizzazioni dei file , nonché l'uso di strumenti come su e sudo , chmod e chown ecc., Come aggiungere un utente a un gruppo o creare nuovi utenti, come dare i privilegi SSH a determinati utenti o gruppi.


0

Devi essere veloce con un editor sulla riga di comando.


0

Impara sed, grepe awk: molto di ciò che faccio quotidianamente come amministratore di sistema di Linux è quello di tirare giù un enorme elenco di file / computer / utenti / ecc. e trasforma l'ingresso in un altro set di uscite per un altro programma da usare.

Un esempio concreto di ciò è quello di prendere un elenco di computer danneggiati da, diciamo, bugzilla o RT, eliminare tutte le informazioni estranee che ho rapidamente copiato e incollato in un documento di testo usando uno di questi tre strumenti sopra, e poi output un elenco delimitato da spazi di un gruppo di nodi in cui ho bisogno di SSH.

Inoltre, dovrai sicuramente conoscere i limiti superiori della shell che stai utilizzando. Il più delle volte, se devi eliminare un mucchio di file non aggiornati, probabilmente ti imbatterai in una cartella con oltre 30k file. rm *non funzionerà, poiché l'asterisco si espanderà in un elenco con più di 30k voci e la shell che stai usando probabilmente non sarà in grado di contenere un elenco di quelle dimensioni. Il modo in cui risolvere questo è con xargs: invece di rm *, devi usare ls | xargs -i{} rm {}, che sarà lavorare.


0

Come amministratore di sistema mi considero un medico digitale (o, a seconda della giornata, a volte un chirurgo cerebrale di livello mondiale).

Quando tutto funziona, avrai un sacco di tempo per migliorare le tue abilità e i sistemi che gestisci.

Quando qualcosa non riesce, dovrai essere in grado di diagnosticare immediatamente il problema e capire come risolverlo.

Quindi, è necessario imparare / memorizzare le basi (e anche a un certo punto gli interni) dei server e delle applicazioni che amministrate. Diciamo che la tua azienda ospita un sito web con la radice web servita su NFS. Improvvisamente tutti i nodi www iniziano allarmanti e il sito smette di rispondere. Cosa sospettare? Ah-ah! Il server NFS si è appena arrestato e il clustering di failover non ha funzionato per qualche motivo.

Un altro aspetto importante da imparare è il carico di base dei server amministrati. Impara a memorizzare il loro carico medio, l'utilizzo della CPU, l'utilizzo della memoria e cose del genere. OK, non devi davvero memorizzare tutto ciò - i grafici creati con Cacti o net-snmp + mrtg possono aiutare molto, ma se il tuo cercapersone allarma sul server X si comportano in modo strano e allo stesso tempo l'helpdesk ti chiama dicendo di altri server o servizi, potresti essere in grado di combinare queste due cose e andare a risolvere il problema prima ancora di guardare i registri, la cronologia degli allarmi o i grafici.

Preparati anche al peggio: pensa a cosa faresti se l'intero data center si oscurasse a causa di un'interruzione dell'alimentazione. Come avresti avviato tutto dopo che l'elettricità sarebbe tornata disponibile? Cosa faresti se qualcosa non si avvia? Come ripristineresti i backup? O cosa faresti se qualcuno ti avvertisse di un cracker che ha appena violato i tuoi server? (Questo tipo di cose dovrebbe essere documentato come una lista di controllo, ma è bene avere anche un qualche tipo di intuizione)


E, come menzionato da altri, vai avanti e scrivi le cose che dovrebbero funzionare (semi) automaticamente. Impara e gioca con la shell / Perl, sono davvero i tuoi migliori amici e molto spesso possono risolvere problemi molto complessi con solo un paio di comandi collegati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.