Qu'est-ce qu'un administrateur Linux doit savoir par tête?


16

Je ne suis pas administrateur système, mais j'ai une bonne connaissance de Linux, Unix, Windows et du matériel.

Quels sont les sujets les plus nécessaires qu'un administrateur Linux doit connaître par cœur (au point de pouvoir réparer, configurer, travailler sans avoir à lire le manuel au maximum; vérifier les pages de manuel communes à toute distribution )?

Le FOCUS que je voudrais définir pour cela serait du réseau de l'entreprise à l'administration du serveur qui peut avoir des fonctionnalités égales en aura la plupart du temps aussi différentes. Comme par exemple, vous ne verrez pas toujours un serveur FTP pour un serveur d'entreprise, mais vous verrez probablement Samba la plupart du temps ...

Je ne dis pas "livre que vous devez lire" ou des choses comme ça, mais je voulais dire les fonctionnalités les plus nécessaires qui seront probablement nécessaires dans votre vie quotidienne en tant qu'administrateur Linux.

Comme:

  1. Noyau, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Squid, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. lier
  7. Problèmes quotidiens rencontrés
  8. Quelle est la fonctionnalité que vous avez le plus utilisée au cours de la journée

Ce n'est pas une liste dans l'ordre ni la plus nécessaire. Il ne fait que nommer quelque chose qui m'est venu à l'esprit.

PS: J'ai déjà les connaissances de base, mais je n'ai pas d'expérience quotidienne sur le terrain. J'ai eu des serveurs, créé des réseaux, etc. De plus, j'ai même une connaissance approfondie de certaines parties de celui-ci. Je voulais juste mettre à jour cela ici, comme je l'ai dit, c'est plus une LISTE QUOTIDIENNE D'UNE VIE SYSADMIN LINUX.

J'apprécierais si vous les gars / filles pourriez énumérer des sujets et par exemple quel champ à l'intérieur est le plus utilisé ou le plus important à mémoriser.

Si vous pensez que ma question est inappropriée, faites-le-moi savoir et je la supprimerai moi-même ou si vous pensez qu'elle est en forme mais doit être retravaillée davantage, faites-le-moi également savoir et je ferai de mon mieux.

Réponses:


19

Êtes-vous vraiment sûr de vous soucier des choses quotidiennes? Personnellement, je pense que les choses que vous auriez dû mémoriser sont les choses que vous devrez faire quand quelque chose est cassé, et tout le monde respire dans votre cou pour relancer le réseau. Les choses au jour le jour ont tendance à varier en fonction de ce que font vos boîtiers Linux sur votre réseau.

Je pense qu'il y a quelques compétences qui sont assez importantes.

  • Vous devez être en mesure de configurer le réseau en utilisant uniquement des outils cli comme ifconfig, route et ip.

    • À quelques reprises, un client a appelé pour dire que sa boîte Linux avait échoué. Je les ai fait démarrer un livecd. Mais le serveur était sur un réseau sans DHCP (c'était le DHCP). Une fois le système démarré, je dois les guider dans le démarrage du réseau et SSH afin de pouvoir me connecter à distance et les aider à diagnostiquer et réparer ce qui a été brisé.
    • Vous pouvez être à un point où vous ne pouvez pas accéder à Internet et vous devrez savoir comment vous connecter.
  • Je pense que vous devriez savoir comment faire une sauvegarde complète du système en utilisant tar, rsync ou dd. Si vous ne savez pas comment faire une sauvegarde et restaurer des choses, vous ne devriez certainement pas toucher les systèmes. Vous devez également vous assurer que les sauvegardes sont effectuées avant de modifier le système.

  • Je pense que vous devriez savoir comment accéder aux systèmes de fichiers à partir d'un livecd sur vos serveurs. Cela signifie que vous devez savoir comment activer LVM et les disques logiciels RAID, accéder aux informations de partition et monter les systèmes de fichiers.

    • Si votre serveur ne démarre pas, vous devrez peut-être accéder au système de fichiers et corriger quelque chose. Ce sera assez pénible d'essayer de comprendre comment monter les choses en cas d'urgence. Soyez prêt à l'avance.
  • Vous devez être suffisamment familier avec le processus de démarrage pour pouvoir changer les choses au démarrage. La plupart des systèmes utilisent GRUB, mais vous pouvez utiliser LILO.
    • Surtout, sachez comment démarrer à différents niveaux d'exécution tels que l'utilisateur unique.
  • Je pense que vous devriez avoir au moins une connaissance pratique de la façon de faire des captures de base avec tcpdump et être capable de lire les résultats. Toutes les fonctionnalités intéressantes de l'interface graphique de Wireshark sont agréables, mais si quelque chose ne fonctionne pas, vous ne pourrez peut-être pas accéder à Wireshark.
    • Il y a un grand nombre de problèmes de réseau que j'ai pu identifier et résoudre rapidement simplement en exécutant tcpdump.

De très belles remarques sur le problème de réseau et de système de fichiers apprécient la réponse :)
Prix

Are you really sure you care about the day-to-day things?mmmmm mais inst problèmes qui se produisent une partie de la vie quotidienne d'un? qui vous mènera à des fonctionnalités utilisées par exemple réseau ifconfig dhcp comme vous l'avez dit ... débogage à quel niveau le problème se produit, etc.
Prix

10
Bons points. Toujours dans cette optique: vous devez connaître les bases de l'éditeur vi. Peu importe si vous utilisez joe, pico, emacs ou MS Word pour votre édition quotidienne, ceux-ci ne seront pas disponibles dans un système de secours, et vi est différent ;)
Sven

1
Merci, je cherchais une excuse pour passer du temps à apprendre plus que: q! commande en vi.
tovare

nano et vi / vim sont généralement universellement disponibles, bien que j'aie vu des systèmes avec seulement nano
Fahad Sadah

11

Sachez quels outils vous avez

Vous ne saurez jamais tout à l' avance. Mais vous pouvez savoir avec quoi vous devez travailler. Plus vous en savez sur les outils, plus vous pourrez en utiliser. Si vous savez ce qu'est l'outil, ce qu'il fait et où trouver plus d'informations à ce sujet, c'est suffisant pour commencer.

Familiarisez-vous vraiment avec les manpages. Vous n'avez pas à les mémoriser, mais vous devez savoir où trouver ce que vous cherchez. manles pages sont meilleures que Google pour rechercher les détails de la syntaxe, car les pages installées sur un système donné reflètent les différentes bizarreries ou informations spécifiques à la version qui correspondent au système que vous regardez.

Si vous en utilisez apachebeaucoup, je vous recommande d'apprendre la syntaxe de configuration d'Apache. Si vous utilisez à la nginxplace, apprenez cela à la place. Mais de toute façon, vous devez savoir ce que sont les deux et comment ils sont différents.

Outils système

Il existe quelques outils qui vous aideront quel que soit le type de travail d'administrateur système que vous effectuez. En supposant que vous connaissiez les bases, comme chmod, mountetc., voici quelques outils très utiles que certains administrateurs ne comprennent pas assez bien:

  • rsync
  • sar / iostat (partie du paquet sysstat)
  • setfacl / getfacl (la plupart des administrateurs pensent que chmod / chown est tout ce avec quoi vous devez travailler)
  • curl et / ou wget
  • iptables
  • qui / dernier / w

Ligne de commande Ninja

Je dirais qu'une bonne compréhension des scripts shell fait des merveilles pour rendre les choses difficiles rapides et faciles. Si vous devez rechercher la syntaxe, il y a de fortes chances que vous ne le fassiez pas du tout, il est donc essentiel de savoir à l'avance.

Par exemple, supposons que vous ayez un répertoire plein de mysqldumpfichiers ".sql", chacun représentant une base de données qui doit être importée dans le serveur. Les importez-vous tous les 35 manuellement? Si vous êtes raisonnablement familier avec les scripts shell, il est très rapide et facile de simplement taper une commande, puis d'aller prendre un café:

Remarque: je l'ai divisé en lignes distinctes pour la lisibilité; si vous laissez les points-virgules dedans, vous pouvez tout mettre sur une seule ligne. Sinon, les points-virgules ne sont pas nécessaires à la fin de chaque ligne.

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

Aussi, je recommande de brosser sur l'utilisation sed. Considérez-le comme un moyen d'appliquer des expressions régulières n'importe où. http://www.grymoire.com/Unix/Sed.html

Supposons que vous ayez changé de numéro de téléphone et que vous deviez mettre à jour toutes vos pages Web en conséquence (et enregistrer une copie de sauvegarde au cas où vous vous tromperiez).

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

Savoir comment chaîner correctement les outils existants pour faire de nouvelles choses peut également être très utile. Disons que vous devez faire la même chose que ci-dessus, mais aussi rechercher dans les sous-répertoires -

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

Il est également utile d'avoir une certaine expérience avec perl. Vous n'aurez peut-être pas besoin d'écrire de programmes sérieux avec, mais il a été conçu pour faire beaucoup de choses sedet awkfaire, mais peut-être un peu plus avec souplesse.

Perl peut être utilisé pour faire de la magie en ligne de commande en utilisant l' -eoption. Utilisation avec -p, -net -i, vous pouvez rapidement écrire des filtres simples pour faire des choses vraiment utiles. Par exemple, supposons que vous ayez besoin de trouver l'adresse IP de tous ceux qui ont accédé à "/admin.php" en septembre:

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

Voir? Ce n'était pas si mal. En tant qu'administrateur système, vous devez savoir comment faire ces choses.


+1 @tylerl très belles remarques faites ici ... j'utilise souvent perl pour clouer la plupart des choses que je dois faire avec la ligne de commande et je peux vous assurer que ce sont des incontournables! Pourriez-vous signaler des problèmes que vous utilisez habituellement avec trhu? je voudrais en savoir plus à ce sujet, après avoir lu la réponse de Zoredache, j'ai trouvé que beaucoup de choses utiles se présentent dans celles-ci. Très apprécié !
Prix

9

Je suis un administrateur Windows qui touche un peu à Linux, donc je ne suis pas en mesure de répondre directement à la question. Cependant, à mon avis, une fois que vous avez une bonne compréhension des bases, la seule chose la plus importante qu'un administrateur doit savoir, quel que soit le système d'exploitation, est et comment trouver les réponses.


L'info-mining est l'une de mes principales compétences. Je l'utilise constamment dans l'exercice de mes fonctions.
sysadmin1138

eh bien j'ai déjà les connaissances de base mais je n'ai pas d'expérience quotidienne sur le terrain, j'ai eu des serveurs, fait des réseaux, et donc j'ai même des connaissances approfondies dans des portions de celui-ci ... mais je voudrais pour améliorer davantage ces connaissances avec ce qui est vraiment utilisé quotidiennement pour un SysAdm Linux et à partir de là, en savoir plus ... je suis plus concentré sur l'obtention d'une liste de vie QUOTIDIENNE de cela :)
Prix

2

En plus des autres réponses:

Je pense que vous devez également connaître votre chemin à travers les processus sont gérés:

  • connaissances de base où trouver des éléments dans / proc
  • les ps, top, vmstat et certaines de leurs retombées plus sophistiquées (ntop, htop, etc.)
  • savoir interpréter la sortie d'au moins un bon outil de surveillance comme les nagios (peut-être exagérés) ou munin.

Je pense que vous n'avez pas besoin de maîtriser sed (je le sais pas du moins), je parviens à me débrouiller facilement avec l'un des greps (grep, egrep, zgrep, etc.). Cependant, vous devez connaître la syntaxe de base des expressions régulières.

Je pense que vous devriez connaître les commandes de base pour manipuler et / ou surveiller MTA (postfix ou exim) et MDA (pigeonnier, cyrus, courrier) si vous maintenez un serveur de messagerie. Même si vous n'en exécutez pas, vous devrez pouvoir exécuter des tests SMTP de base sur un MTA, ne serait-ce que pour des problèmes de livraison locaux.

Vous devez connaître votre chemin dans le système d'authentification que vous utilisez (PAM, LDAP). Où sont stockés vos mots de passe? en utilisant quelles procédures? Quelles applications utilisent quels mécanismes d'authentification?


iotop :) un si bon outil que je ne peux pas vivre sans ps aussi ... Oui, ce sont ces commandes ou un langage comme perl, python, php que vous pouvez exécuter à partir de la ligne de commande en faisant ce dont vous avez besoin.
Prix

2

Il y a quelques choses que vous devez absolument savoir.

Vous devez avoir une bonne compréhension de votre shell (comment il analyse les arguments, comment il étend les caractères génériques, où se trouvent les cas d'angle niggly).

Vous devez pouvoir modifier des fichiers sans exécuter X11.

Vous devez pouvoir monter et démonter des systèmes de fichiers.

Vous devez avoir la capacité d'absorber rapidement de nouvelles informations. Parce que ce sont les compétences dont vous avez besoin lorsque la batterie de serveurs de toute l'entreprise est tombée en panne et que vous n'avez accès que via un serveur de console piddly (c'est-à-dire "console" comme dans le port série) et / ou une connexion VPN très lente (ce qui rend également tout ce qui est basé sur X11 douloureux). Et cela arrivera, alors planifiez-le.


2

Les exemples donnés sont tous d'excellentes réponses liées au serveur .. cependant .. L'administration système n'est jamais à 100% des ordinateurs .. Je souhaite que ce soit le cas!

Vous devez aussi traiter avec les gens, dans notre cas, cela signifie Manglement, Lusers, Contractors and Suppliers .. arg ^ n

Les compétences en service à la clientèle savent comment parler de ce dont vous avez besoin / voulez / devez faire, obtenir des informations à d'autres personnes, de la documentation, tout est essentiel pour garder votre travail d'administrateur système.

Si vous voulez que vos projets soient financés et utilisés: inutile d'essayer d'obtenir un nouveau serveur si vous ne savez pas comment demander de l'argent, si vous n'avez pas les chiffres / alternatives / plan DR / devis / plan de mise en œuvre etc .. La politique de bureau est un B ** CH, l'argent est toujours: "Tight" .. quoi que cela signifie .. cela n'affecte pas les voitures de société execs, mais cela affectera la sécurité de votre site et la capacité de normaliser si vous le pouvez 'leur impressionne pas tes raisons.

Je dirais la chose la plus importante à retenir: NE FAITES PAS CONFIANCE À CE QUE DIT UN UTILISATEUR . Gardez cela à l'esprit lorsque vous répondez au téléphone .. peu importe ce qu'ils disent, vous devrez toujours le découvrir par vous-même, car c'est finalement votre cul, pas le leur, et ils n'ont généralement aucune idée. Ce n'est pas parce qu'ils peuvent créer un paragraphe chargé de mots à la mode pour embobiner votre patron, qu'ils ne savent pas vraiment ce qu'ils viennent de dire.

D'autres pensées:

  • Assurez-vous d' avoir suffisamment de temps sur l'onduleur à tout ÉTEINT QUAND la panne de courant

  • Surveillance, assurez- vous de SAVOIR qu'il a baissé. N'attendez pas que les lusers téléphonent.

  • SAUVEGARDES SAUVEGARDES SAUVEGARDES .. les systèmes multi-utilisateurs sont sujets aux heures supplémentaires si vous n'avez pas un bon système de sauvegarde .. les heures supplémentaires sont mauvaises, (pas pour votre poche, mais pour votre budget et l'apparence de professionnalisme).

  • NE CHANGEZ JAMAIS QUOI QUE CE SOIT UN VENDREDI, ou la veille d'un jour férié .. vous serez appelé pendant le week-end, vous devrez le réparer, vous passerez un très mauvais moment ..

  • Standardisez et automatisez .. autant que vous le pouvez! Si vous pouvez l'écrire, pourquoi pas?

  • Découvrez comment utiliser / installer un système de helpdesk, faire en sorte que les utilisateurs enregistrent des appels via ce système, cela vous permettra de suivre vos activités, d'inciter les supérieurs à vous payer plus pour le travail que vous faites et de vous permettre d'enregistrer vos réponses (defacto KB) .. tout en informant l'utilisateur de la progression. Garantit que les requêtes / problèmes des utilisateurs ne se perdent pas dans le déluge. (Spiceworks est gratuit, il y en a beaucoup d'autres)

  • J'ai acheté une copie de: The Practice of System Administration , par Limoncelli, je le recommande fortement .


1

Un administrateur Linux doit bien comprendre les autorisations de fichiers , ainsi que l'utilisation d'outils tels que su et sudo , chmod et chown, etc., comment ajouter un utilisateur à un groupe ou créer de nouveaux utilisateurs, comment accorder des privilèges SSH à certains utilisateurs ou groupes.


0

Besoin d'être rapide avec un éditeur sur la ligne de commande.


0

Apprenez sed, grepet awk: une grande partie de ce que je fais quotidiennement en tant qu'administrateur système Linux consiste à dérouler une énorme liste de fichiers / ordinateurs / utilisateurs / etc. et transformer l'entrée en un autre ensemble de sorties pour un autre programme à utiliser.

Un exemple concret de cela est de récupérer une liste d'ordinateurs bloqués à partir, par exemple, de bugzilla ou de RT, de supprimer toutes les informations superflues que j'ai rapidement copiées et collées dans un document texte en utilisant l'un de ces trois outils ci-dessus, puis de sortir une liste délimitée par des espaces d'un tas de nœuds dans lesquels j'ai besoin de SSH.

De plus, vous devrez certainement connaître les limites supérieures du shell que vous utilisez. Plus souvent qu'autrement, si vous devez éliminer un tas de fichiers périmés, vous rencontrerez probablement un dossier contenant plus de 30k fichiers. rm *ne fonctionnera pas, car l'astérisque s'étendra à une liste avec plus de 30 000 entrées, et le shell que vous utilisez ne sera probablement pas en mesure de contenir une liste de cette taille. La façon dont vous résolvez ceci est avec xargs: au lieu de rm *, vous utiliseriez ls | xargs -i{} rm {}, ce qui fonctionnera.


0

En tant qu'administrateur système, je me considère comme un médecin numérique (ou, selon les jours, parfois un chirurgien du cerveau de classe mondiale).

Lorsque tout fonctionne, vous aurez tout le temps nécessaire pour améliorer vos propres compétences et les systèmes que vous administrez.

En cas d'échec, vous devez être en mesure de diagnostiquer immédiatement le problème et de savoir comment le résoudre.

Donc, vous devez apprendre / mémoriser les bases (et aussi à un certain point les internes) des serveurs et applications que vous administrez. Supposons que votre entreprise héberge un site Web dont la racine Web est servie sur NFS. Soudain, tous les nœuds www commencent à alarmer et le site cesse de répondre. Que soupçonner? Ah-ha! Le serveur NFS vient de tomber en panne et le clustering de basculement n'a pas fonctionné non plus.

Un autre aspect important à apprendre est la charge de base des serveurs que vous administrez. Apprenez à mémoriser leur charge moyenne, l'utilisation du processeur, l'utilisation de la mémoire et des trucs comme ça. OK, vous n'avez pas besoin de mémoriser tout cela - les graphiques créés avec Cacti ou net-snmp + mrtg peuvent beaucoup aider, mais si votre téléavertisseur s'alarme sur le serveur X se comportant étrangement et en même temps, le helpdesk vous appelle pour vous parler d'autres serveur ou service allant bonkers, vous pourrez peut-être combiner ces deux choses et aller réparer la chose avant même de consulter les journaux, l'historique des alarmes ou les graphiques.

Préparez-vous également au pire: pensez à ce que vous feriez si tout le centre de données était en panne en raison de la panne de courant. Comment pourriez-vous tout démarrer après que l'électricité serait redevenue disponible? Que feriez-vous si quelque chose ne démarre pas? Comment restaureriez-vous les sauvegardes? Ou que feriez-vous si quelqu'un vous avertissait d'un pirate qui venait de s'introduire dans vos serveurs? (Ce genre de choses devrait être documenté comme une liste de contrôle, mais bon d'avoir aussi une sorte d'intuition)


Et, comme mentionné par d'autres, continuez et scriptez les choses qui devraient s'exécuter (semi-) automatiquement. Apprenez et jouez avec le shell / Perl, ils sont vraiment vos meilleurs amis et peuvent très souvent résoudre des problèmes très complexes avec seulement quelques commandes assemblées.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.