Mòdul 3
Serveis de xarxa amb GNU/Linux
Exercici 12345

 
Comandes  d'Administració del Sistema 

Introducció

De segur, com heu pogut observar,  que en el capítol anterior ens hem deixat moltes comandes en el tinter que no eren catalogables en cap dels àmbits en els que les hem classificat, i és per això que en aquest nou capítol inclourem les que resten d'assignar (comandes d'acció directe sobre el sistema) compartint un bloc comú amb un seguit de comandes purament d'administració que us poden ser útils en el dia a dia d'un administrador de sistemes.

Sense poder delimitar una frontera entre comandes de sistema i comandes purament d'administració, passem a definir la resta de comandes en un sol bloc, si bé no cal fer esment a que en els blocs anteriors hi trobem comandes que lògicament també seran utilitzades constantment en l'administració i manteniment dels equips que tinguem entre mans.
 

Comandes de sistema i administració
 
Comanda Descripció i exemples
fsck Comprova per escaneig l'estat del file system que determinem.
fsck -a /dev/hda : fa l'escaneig de tot el disc (el primer no scsi) sense consultar amb l'usuari i reparant automàticament les possibles deficiències
fsck -r /dev/hda1 : escaneja la parimera partició del primer disc no scsi reparant les possibles deficiències de manera interactiva amb l'usuari.
Per regla general requereix privilegis de root.
mkbootdisk Crea un disc d'arrencada que guardarà el kernel actual i l'estructura del nostre file-system.
mkbootdisk versió_del_kernel : crea un disquet d'arrencada amb la informació del kernel i file-system actual (Ex; mkbootdisk 2.0.23)
kill 'Mata' (elimina) processos actius a través del seu número que l'identifica (PID)
kill PID_procés : després d'identificar el número (PID) que li correspon a un procés determinat (amb un ps -ef) podem eliminar-lo amb aquesta comanda.
Si un procés determinat ens bloqueja la màquina podem accedir a ell des d'una altra terminal (ALt+F2) i 'matar-lo' des d'allà.
kill -l : veus el llistat de senyals que pots associar a la comanda kill amb un número concret. Per exemple;
kill -1 PID = reinicia el procés
kill -9 PID = l'elimina per complet
set Ens mostra informació de les variables d'entorn del sistema.
set | more : veiem de forma paginada tota la informació de les variables d'entorn
ifconfig Mostra l'estat de les interícies de xarxa (la de bucle, les ethernet....) actives.
ifconfig -a : mostra totes les interfícies de xarxa que el sistema té detectades, tant les actives (protocol UP) com les inactives. És útil per veure si el propi sistema ha detectat la nostra placa de xarxa. 
ifup ifup eth0 : si hem carregat el mòdul d'una targeta de xarxa manualment (amb modprobe eth0) haurem d'activar la interfície amb la comanda ifup eth0
kudzu kudzu : en la versió 6.2 de RedHat s'incorpora aquesta utilitat de comanda que permet autodetectar nou hardware que haguem instal·lat en 'calent'.
make Compil·la el programas que hem baixat en codi font. Existeix un pas previ que s'executa amb ./configure que crea un arxiu (makefile) necessari per al make i la conseqüent compil·lació.
make : inicia la compil·lació
dmesg Ens informa de les incidències ocorregudes que afecten al kernel (arrencada, procés d'instal·lació del S.O., canvis de disc ...). La informació s'emmagatzema en un buffer de mida predeterminada però personalitzable.
dmesg -c : després de mostrar en pantalla els missatges buida (clear) el buffer
su Obre un nou shell de treball amb canvi d'usuari i grup.
su usuari : obrim un shell com a nou usuari
su : estant com a usuari agafarem característiques de root heretant les nostres variables d'entorn (ens demanrà lògicament la contrasenya)
su - : estant com a usuari ens convertim en root amb les variables d'entorn de root, és a dir, com si haguessim entrat al sistema des d'un principi com a root.
su - usuari : si som root podrem entrar com un nou usuari amb efectes com des d'inici de sessió
dump Permet fer 'backups' del sistema per a recuperar dades, sempre i quan tinguis instal·lada l'aplicació 'dump' que pots trobar al directori RPMS del RedHat. El pots instal·lar amb "rpm -ivh paquet_dump". Per defecte farem un dump a cinta però pots fer-ho a fitxer a la mateixa màquina, a disquet, a host remot ...Especificarem un número per al grau de backup que volguem fer. El 0 correspon a un 'full backup'.
dump -0u -f /dev/st0 /home/jmarti : volca a cinta el contingut de /home/jmarti incloent-hi tots els subdirectoris que hi trobi.
Si posessim la barra ( / ) voldria dir que volem fer una còpia de tot el file system amb tots els seus fitxers i directoris
restore Comanda que permet recuperar les dades de backup fetes amb 'dump'.
restore -i -f  /dev/st0 : restaurarem el que hi ha a la cinta (/dev/st0) o el directori on haguem volcat la informació. Ara entrarem a un prompt  restore> on podrem navegar per directoris i marcar amb add nom_de_fitxer_o_ directori el que volguem  recuperar.
Fet això amb al comanda extract el recuperarem. Amb quit sortim.
startx Ens permet arrencar l'entorn gràfic que tinguem instal·lat a la màquina
startx : commmuta a entorn gràfic. Ve a ser com la combinació Alt+F7 que també ens porta a l'entorn gràfic (Amb la combinació Ctrl+Alt+F2 sortiriem de l'entorn gràfic)
setup Comanda que permet configurar a posteriori mitjançant un entorn gràfic el tipus de teclat, les característiques del ratolí, configurar la zona horària, les característiques de video o la configuració dels diferents serveis que volem arrencar.
linuxconf Aquesta comanda que requereix drets de root permet, a modus de resum, tenir informació bàsica de la nostra màquina, especificacions de DNS, NIS, connexió per PPP mab mòdem, informació del Servidor Web Apache, gestió bàsica dels serveis del nostre servidor, configuració del servidor de correu, filtres anti-spam, configuració d'un servidor de fitxers amb Samba, gestió dels accessos a la xarxa local, configuració del servidor de FTP, creació d'usuaris, gestió del file-system, particionat, quotes als usuris i permisos, també la gestió d'arrencada amb LILO, muntatge de file-systems, parada de la màquina controlada, activació del Control-Panel per a l'administració en entorn gràfic, missatges d'arrencada i registre de logs de sistema entre altres moltes més funcions.
rpm Comanda de gestió dels paquets d'aplicacions, serveis i programes rpm ( Red Hat Package Manager )
rpm -i paquet : instal·la ( i ) el paquet rpm 
rpm -ivh paquet: permet veure la informació mentre s'efectua la instal·lació
rpm -q -a possible_paquet : realitza una consulta de tots els paquets que hi ha instal·lats al sistema que fan referència a la paraula indicada com a  identificador d'un possible paquet
echo Comanda amb sortida per defecte la cònsola (pantalla) que mostra el contingut de les variables d'entorn o de cadenes especificades.
echo $PATH : mostra el contingut de la variable PATH
echo "hola" : mostra en pantalla la paraula hola. En shell-scripts la utilitzarem per mostrar en pantalla un text determinat.
shutdown Comanda de baixada de sistema que es troba dins del directori /sbin i que requereix privilegis de root.
shutdown -h now : 'baixa' (ara) la màquina desmuntatnt tot el sistema de fitxers. La paraula 'now' la pots substituir per un número que es relacionarà amb minuts. És equival·lent a la comanda init 0.
shutdown -r now : desmunta el file system reiniciant posteriorment la màquina. Equival·lent a init 6. Existeix també la combinació de les tecles Ctrl+Alt+Supr per reiniciar el sistema.
init És el pare de tots els processos. Indicant-li un número al darrera forçarem a que la màquina una vegada 'baixada' (exceptuant el 0) l'arrenquem amb una latre nivell.
init 0 : baixa el sistema fins un 'power off'
init 1 : arrenquem amb nivell de monousuari sense protocols de xarxa
init 2 : arrenquem amb modus multiusuari sense protocols de xarxa
init 3 : reinicia la màquina sense entorn gràfic amb les característiques de multiusuari i protocols de xarxa
init 5 : igual que el 3 però activant les X (entorn gràfic d'haver-lo)
init 6 : reinicia el sistema al nivell 3 (init 0 + init 3)
Aquets processos d'arrencada es poden definir al fitxer /etc/inittab a la línia que fa referència al nivell d'arrencada (Run Level:)
sync sync : Completa totes les operacions pendents d'E/S (input/output). Convé fer-ho un parell de vegades o tres abans d'executar la comanda 'halt' de parada de sistema
halt halt : comanda de parada de sitema equival·lent a un 'init 0'.
reboot reboot : realitza una reiniciada de sistema igual que un 'init 6'.
mkfs Crea un file-system del tipus especificat en el dispositiu que indiquem
mkfs -t msdos /dev/fd0 : crearem un sistema de fitxers de tipus MSDOS al dispositiu de disquet. Requereix privilegis de root.
& Permet que una comanda s'executi en modus 'background' mentre estem relitzant altres tasques en la màquina. Podem redireccionar-ho a un fotxer de text per a recollir la sortida de la comanda.
ps -ef | grep netscape > /tmp/processos.txt & : la sortida de la comanda per buscar tots els processos actius que tenen a veure amb el netscape ho redireccionarem cap a un fitxer de text que anomenarem 'processos.txt'. Mentres tant podrem seguir treballant a la mateixa cònsola.
nohup Permet executar una comanda en modus background i encara que sortim de la sessió de treball la deixa executant-se com a procés actiu. Si no direccionem la sortida de la comanda cap a un fitxer, per defecte ho 'tirarà' cap al fitxer nohup.out que crearà al mateix directori on ho executem.
nohup ls -la . : executarà un 'ls -la' del directori actual ( . ) i per sortida de defecte ho posarà al fitxer nohup.out
nohup ps -ef > /tmp/processos : s'executa un 'ps -ef' en modus backgroud i es llença el resultat al fitxer processos del directori /tmp.
wall wall missatge : mostra un missatge a cada usuari per 'broadcast' exceptuant aquells que tinguin desactivada l'opció de recepció de missatges. Amb Ctrl+D indiquem el final de missatge.
lilo lilo : Actualitza el MBR o el Sector d'Arrencada d'acord amb la informació que consta en l'arxiu de configuració /etc/lilo.conf
ping Envia una petició de retorn (echo) via TCP/IP a la màquina especificada per IP o per nom. Si el nom falla però la IP no pot ser degut a una mala configuració del DNS (Servidor de noms).
ping 192.168.0.1 : llencem una petició d'ecus a la IP especificada de la nostra xarxa local (router en el nostres centres). Si hi ha resposta que veurem reflexada en una resolució en mil·lisegons, confirmarem que el host de destí és operacional (les nostres dues màquines es 'veuen')
telnet Obre una sessió (login) de treball a la màquina especificada sempre i quant aquesta no tingui comentada la línia que fa referència al telnet en el fitxer inetd.conf i estem donats d'alta com a usuari en el host de destí ja que com a root no podrem fer telnet.
telnet estació13.delcentre.ct : obrirem una sessió de treball a la màquina estació13. Ens demanrà un login i un password.
traceroute Ens traça una ruta a través de les IP's de màquines 'gateways' fins la destinació que indiquem
traceroute www.sunfreeware.com : veiem a través d'un número concret de salts (hops) les IP's que fan camí des de la nostra màquina cap a la destinació de 'sunfreeware'
crontab Planifica un procés que s'executarà repetidament amb la freqüència que nosltres li especifiquem. La comanda crontab generarà un fitxer amb el nostre nom d'usuari ( o root, o adm, o lp ...) al directori /usr/spool/cron/crontabs on guardarà especificades totes les planificacions de tasques que volem que s'executin. La sintaxi són dues xifres per a cada camp i al final la comanda:
30 20 * * 1,5 /sbin/init 0 : a les 8h. i 30' de la tarda de tots els dies del mes i de tots els mesos de l'any, en dilluns i divendres (ja que el 0 és diumenge), s'efectuarà un 'init 0'. D'haver posat 1-5 indicariem de dilluns a divendres.
Els usuaris que podran o no utilitzar la comanda crontab estaran definits als fitxers cron.deny i cron.allow del directori /etc.
crontab -u root -e : edita totes les tasques programades per l'usuari root on podrem canviar-les o eliminar si és el cas.
crontab -u usuari -l : llista les tasques que té programades l'usuari en qüestió.
at Planifica un procés o comanda que s'executarà en un moment determinat com a única vegada. La sintaxi de la comanda inclou un paràmetre per al temps i un altre per a un increment:
at now +1 minute : d'aquí a un minut executarem (ara polsem 'intro')
        at>aquí entrarem la comanda;p.e. /sbin/init 6
        Ctrl+d : amb aquesta acció generarem un fitxer que inclourà la comanda especificada en el directori /usr/spool/cron/atjobs
at 3002 jul23 (intro)
   at>ps -ef >processos.txt (Ctrl+d)
   Aquí estem dient que el 23 de juliol a les dues i trenta minuts de la matinada reculli al fitxer processos.txt els processos actius que estiguin en aquell moment rodant en la nostra màquina.
Els usuaris que podran o no utilitzar la comanda at estaran definits als fitxers at.deny i at.allow del directori /etc.
exit exit : sortim del sistema (tanca el shell que s'ha obert a la terminal) per tornar al 'login'. Si anessim obrint shells consecutius (p.e. entrant com a usuari, fent un 'su' després, i encara un 'su nou_usuari' des de root) hauriem de fer dos 'exit' consecutius per tornar a la situació inicial. 
sh Executa un script creant un nou shell. Per sortir-ne'n ho farem amb 'exit'.
sh script : crea una nova sessió on s'executarà l'script indicat
talk Obre una aplicació de comunicació amb altres usuaris que estiguin actius en el nostre sistema o màquina. Suposem que després d'un 'finger' detectem que l'usuari 'jordi' està actiu en la nostra màquina. Fent un 'talk' podrem establir en una finestra una conversa amb ell.
talk jordi : ens surt una finestra en la que podrem escriure un text que enviarem a l'usuari 'jordi'. A ell se li obre automàticament una altra des de la que podrà contestar. amb 'exit' sortirem de la aplicació
fg Porta cap a la pantalla (foreground=primer pla) el treball actual o els especificats
fg : ens presenta en primer pla l'actual treball en curs.
fg treballs : ens mostra els treballs en primer pla
lynx Navegador Web sense entron gràfic propi del Linux.
lynx www.xtec.es : ens porta a la pàgina principal de la XTEC sota modus de text pla (no es carrega cap tipus de fitxer d'imatge). És útil per a descarregar-se fitxers amb més d'una extensió sota Linux
>  /  >> Redireccionament de la sortida estàndar cap a un fitxer o nova comanda.
ps -ef | grep squid > processos : la sortida de la comanda la recollirem al mateix directori on ens trobem en un fitxer anomenat 'processos'. D'existir el fitxer el reescriuria per complet (>)
tail -50 access.log >> peticions_web.log : afegeix (>>) les últimes 50 línies del fitxer access.log (de no estar al directori especificariem el camí senscer) al fitxer peticions_web.log. La redirecció '>>' afegeix sempre al final del fitxer conservant el contingut anterior.
useradd Afegeix un usuari al sistema. Requereix privilegis de root.
useradd nom : afegeix l'usuari nom proporcionant-li un shell per defecte i un 'home' (/home/usuari)
userdel Esborra un usuari prèviament donat d'alta al sistema.
userdel usuari : elimina del sistema a l'usuari
groupadd Afegeix un nou grup al sistema.
groupadd nou_grup : afegeix al sistema el nou_grup
newgroup Afegeix un nou grup al sistema (igual que el cas anterior).
newgroup nom_grup : crea el grup nom_grup
passwd Dóna una contrasenya a un usuari donat d'alta al sistema o permet el canvi de l'antiga si tens privilegis sobre l'usuari (root o tu mateix).
passwd usuari : permet donar o canviar la contrasenya de l'usuari en qüestió
insmod Carrega mòduls dinàmicament. Requereix privilegis de root.
insmod mòdul : carrega dinàmicament al nostre sistema el mòdul especificat

 

Eines i recursos d'administració

Si bé en els mòduls 4, 5, 6 i 7 es veuran amb més aprofondiment, hi ha comandes que accedeixen directament als serveis del nostre sistema i que permeten reparar possibles anomalies que poden ser reestablertes parant i tornant a engegar el servei o bé actualitzar canvis que hem produit nosltres mateixos.

Si ens dirigim al directori /etc/rc.d/init.d/ trobarem els scripts que poden parar, engegar i reiniciar els diferents serveis; p.e.:

./httpd stop atura el servei de web
./httpd start arrenca el servei de web
./httpd restart reinicia el servei de web
./network stop atura el serveide xarxa
./network start engega els serveis de xarxa
./network restart reinicia els serveis de xarxa

Hi ha serveis que no permeten el 'restart' però aquesta filosofia stop/start pot servir per a la resta de serveis que s'inclouen al directori init.d que és enllaçat des dels rc0.d , rc3.d , ..etc.

En els directoris de nivell d'arrencada com per exemple el rc3.d hi trobarem els links al init.d dels diferents serveis. El fitxer S10network és un enllaç al network que es troba al init.d, per tant serà el mateix fer ./network start des del directori init.d que fer ./S10network start des del directori rc3.d

Existeixen altres eines d'administració molt útils com linuxconf (s'activa amb la comanda linuxconf), l'aplicació webmin, o el cache-manager de l'Squid que veurem als mòduls següents i que permeten gestionar tot el que fa referència als diferents aspectes de l'administració del nostre sistema.