dilluns, 30 de juliol de 2012

Enviar un correu des de bash

Per a enviar un correu desde bash podem utilitzar el següent script:

#!/bin/bash

TO_ADDRESS="someone@domain.tld"
FROM_ADDRESS="sender"
SUBJECT="Proba"
BODY="Aquest es un mail de proba"

echo ${BODY}| mail -s ${SUBJECT} ${TO_ADDRESS} -- -r ${FROM_ADDRESS}

El double dash "--" s'utilitza per a indicar el final de la llista de parametres d'una comanda.
Per exemple si volem buscar en grep la opció -v ho fariem com segueix:

grep -- -v file

dilluns, 16 de juliol de 2012

Runlevels en Redhat i Debian

RedHat estructura els runlevels com segueix:

0:Halt
1:Single User
2:User Defined
3:Multiuser with console only (Everything up without X11)
4:User Defined
5:X11 (All services running including X11)
6:Reboot
Debian estructura els runlevels com següeix:
0:System Halt
1:Single user
2:Full multi-user mode (Default)
3-5:Same as 2
6:System Reboot
Per a interactuar amb els runlevels Redhat proporciona les seguents eines. Si necessitem veure en quin runlevel estem actualment ho podem realitzar amb les següents comandes:
who -r
runlevel
Si volem llistar i rebre informació de tots els runlevels configurats podem utilitzar les següents comandes:
chkconfig --list
que mostrarà el següent:
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
acpid           0:off   1:off   2:off   3:off   4:off   5:off   6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:off   4:off   5:off   6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:off   4:off   5:off   6:off
avahi-daemon    0:off   1:off   2:off   3:on    4:on    5:on    6:off

...

wpa_supplicant  0:off   1:off   2:off   3:off   4:off   5:off   6:off
xfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off
ypbind          0:off   1:off   2:off   3:off   4:off   5:off   6:off
yum-updatesd    0:off   1:off   2:off   3:off   4:off   5:off   6:off

xinetd based services:
        chargen-dgram:  off
        chargen-stream: off
        daytime-dgram:  off

...

        rsync:          off
        tcpmux-server:  off
        time-dgram:     off
        time-stream:    off
Es util utilitzar grep per a filtrar aquesta info:
chkconfig --list | grep on
chkconfig --list | grep 3:on
chkconfig --list | grep '[123]:on' 
Per a afegir script podem utilitzar els flags --del i --add, aquestes flags només actuen sobre la estructura de symlinks dels directoris rcX.d.
chkconifg --del myownscript
chkconfig --add myownscript
Per a configurar els scripts en els runlevels que creiem adequats utlitzarem les següents comandes en distribucions Redhat:
chkconfig myownscript on (Per defecte es configura en els runlevels 2345)
chkconfig myownscript off (Per defecte es configura en els runlevels 2345)
chkconfig --level2 myownscript on
chkconfig --level2 myownscript off
chkconfig --level234 myownscript on
chkconfig --level234 myownscdript off
En Debian la gestió es lleugerament diferent, Una volta tinguem l'script programat el copiarem a
/etc/init.d
Els init-scripts es gestionen amb uptade-rc.d
update.rc.d -f myownscript remove ( Borra els symlinks)
update-rc.d myownscript defaults ( Llança l'script per 
                                   als runlevels 0 1 2
                                   3 i fa un stop per als
                                   runlevels 4 5 6)
update-rc.d myownscript start 20 2 3 4 5 . stop 20 0 1 6 
                                  ( Aixi assignes la prioritat i 
                                    els runlevels corresponents
                                    per a start i per stop)
També es pot instalar en debian el paquet chkconfig o utilitzar el següent command per a veure quins serveis tenim UP desde el començament:
find . /var/run | grep pid
Si instalem la utilitat sysv-rc-conf ja tenim alguna cosa semblant a chkconfig --list.