Awk y Otros Comandos
Awk y Otros Comandos
Awk y Otros Comandos
Ejemplos sencillos.
Tres ejemplos que hacen lo mismo
cat /etc/passwd
awk '{ print }' /etc/passwd
awk '{ print $0 }' /etc/passwd
- Imprimir la primera columna, se especifica que el separador es ":"
awk -F':' '{ print $1 }' /etc/passwd
: )
Para la instruccin anterior su similar con cut sera:
cut -d':' -f1 /etc/passwd
Podemos hacer uso de sort para ordenar el resultado
awk -F':' '{ print $1 }' /etc/passwd | sort
Tambin podemos hacer una bsqueda con grep
awk -F':' '{ print $1 }' /etc/passwd | root
Otro caso de bsqueda es como lo siguiente
awk '/pam|usr/' /etc/passwd (significa que busque las coincidencias para pa
m usr, para decir
se usa | )
El ejemplo de clase... sumar el tamao total de los archivos con extensin .sh
ls -l *.sh
-rw-rw-r--rw-rw-r--rw-rw-r--rw-rw-r--rw-rw-r--rw-rw-r--rw-rw-r--rw-rw-r--rw-rw-r-campo 1
1
1
1
1
1
1
1
1
1
jr
jr
jr
jr
jr
jr
jr
jr
jr
c3
jr
jr
jr
jr
jr
jr
jr
jr
jr
131
176
72
77
100
167
106
171
118
^
abr
abr
abr
abr
abr
abr
abr
abr
abr
20
12
25
20
18
18
20
25
11
14:53
15:38
13:09
15:40
17:22
17:02
15:23
14:37
14:20
ag.sh
a.sh
busca.sh
decl.sh
dobleexp.sh
if.sh
leearchivo.sh
sel.sh
vives.sh
el END nos indica que ya que termin de sumar todos los registros,
hasta entonces imprime el total
Si se fijan ya no se pone $total, porqu? pues es porque ese es el
nombre de la variable, no imprime palabras.
Existe un comando que es uniq, se emplea utilizando -c para que cuen
te el nmero de veces que aparece una palabra en un listado, otro es history, en l
est el historial de comandos que utilizamos, entonces, si escribimos:
history
El resultado es:
95
96
97
98
99
100
101
102
103
104
105
135
59
44
43
42
27
23
17
15
14
echo
.
cat
awk
ls
let
sudo
nano
cd
who
Eso permite elegir un usuario cualquiera. Lo anterior sirve para elegir ahora el
directorio, cmo?
directorio= $( cat /etc/passwd | grep $usuario | awk -F':' '{ print $6 }' )
Bueno, ya tenemos casi todo el programa, ya solo falta pedir la ruta donde guard
arlo y despus hacer el backup, cmo hago el backup?
Existe el comando tar,
Archivos .tar.gz:
Comprimir: tar -czvf empaquetado.tar.gz /carpeta/a/empaquetar/
Descomprimir: tar -xzvf archivo.tar.gz
Archivos .tar:
Empaquetar: tar -cvf paquete.tar /dir/a/comprimir/
Desempaquetar: tar -xvf paquete.tar
Archivos .gz:
Comprimir: gzip -9 index.php
Descomprimir: gzip -d index.php.gz
Archivos .zip:
Comprimir: zip archivo.zip carpeta
Descomprimir: unzip archivo.zip
Entonces, lo que hago es poner la instruccin:
tar -cvf respaldo.tar $rutabackup
y listo! cuando termine debe existir un archivo .tar en la carpeta seleccionada.
Lo interesante es que arreglen el script para que el nombre tenga la fecha y el
nombre del usuario. cmo?
nombrearchivo = $usuario
fecha=$(date +%d%m%y)
260416
l 2016
luego, ejecutamos
nombrearchivo+=_
en ese momento nombrearchivo vale por ejemplo usuario_
nombrearchivo+=$fecha
ahora nombrearchivo vale usuario_260416
despus nombrearchivo+=.tar
ahora nombrearchivo vale usuario_260416.tar
Y listo, ahora el backup tendr un nombre diferente.