Mostrando las entradas con la etiqueta administracion. Mostrar todas las entradas
Mostrando las entradas con la etiqueta administracion. Mostrar todas las entradas

jueves, 11 de junio de 2015

Donde estan los logs del sistema en linux

Bueno hoy les traigo una entrada cortita pero muy util funciona en fedora, red hat, ubuntu, mint y varios mas, en donde se encuentran los logs de linux?, si bien no son todos estos son los que por lo menos concidero los basicos.

logs y para que sirve ?
/var/log/messages
la mayoria de los mensajes del syslog se guardan aqui. con excepcion de los mensajes relacionados a la autenticación y los mensajes del servicio de correo, algunos otros mensajes de debug
/var/log/secure
Aqui vamos a poder ver los logs relacionadios con la autenticación del sistema, es decir quien entro, quien salio y errores
/var/log/maillog
  Este es el log del servicio estandar de correos por lo general sendmail o postfix
/var/log/cron
Este es el log relacionado con las tareas programadas en el crontab de todos los usuarios y aqui podemos ver parte de su ejecucion y el resultado
/var/log/boot.log
 
Finalmente aqui podremos ver los logs relacionados con el arranque e inicio del sistema

domingo, 30 de marzo de 2014

Buscar Archivos en linux/unix (Find)

Bueno ahora toco un tema bien divertido jeje buscar archivos en linux o bien Unix,
como ya muchos saben buscar un archivo aveces no es tan complejo otras veces es un verdadero dolor de cabeza pero para esto contamos con el comando find.

conforme encuentra mas busquedas las ire agregando en el post y les dare mas trucos para depurar sus resultados por ahora veremos lo basico.

find es un comando sumamente poderoso por que su utilidad no termina en solo buscar sino que ademas puede ejecutar y hacer excepciónes para desplegar una selección de resultados sumamente especifica.

Busquedas de ejemplo
(donde el punto "." significa el directorio actual y puede ser sustituido por otro path)

find . -name “miarchivo.txt”  
find . -name “java” buscar archivos  que empiezen con la palabra java

find . -name "*.java" busca archivos que terminen con la palabra .java

find . -perm 777  busca los archivos que tengan permisos 777

find . -mtime +1 encuentra los archivos modificados hace mas de un día.

find . -mtime -1 encuentra los archivos modificados hace menos de un día.

find . –name "*.txt" –print | xargs grep "test" 
busca la palabra "test" en todos los archivos que devuelva la busqueda de los archivos que terminene con extención *.txt (personalmente este es muy util)

find . -iname "archivo"
con iname es para hacer la busqueda case sensitive, de modo que no distinge entre mayusculas y minusculas.




---encuentra archivos entre la fecha del primer archivo y como maximo la fecha del segudo archivo y a los archivos encontrados los comprime con gzip

find . -name "*" -newer /home/miarchivo.log ! -newer /home/miarchivo_nuevo.log | xargs -I {} gzip {} 


 --- para saltarse un path, si la condicion es true, no entra en el folder
find / -path /mipath/Backup -prune -o -name domain.xml -print     //local para solaris


--- Find para determinar el tamaño de todos los directorios del sistema (usar con cuidado)
para solaris
find ./ -type d -depth  -exec du -sh {} + | sort -n

para linux
find ./ -type d -maxdepth 3 -exec du -sh {} + | sort -n


<<<< busca varios archivos y modifica en todos los archivos una linea >>>>
find . -name "test_file*" -exec perl -pi -e 's/cadenaen_a_remplazar/nueva_cadena/g' {} \;

(este comando puede variar, en linux podemos usar la opcion sed -i, pero para solaris no me tomaba el valor -i asi que pearl en modo interactivo es bastante eficiente)



Manejo basico de jobs en linux/solaris

Saludos apoco no les ha pasado que quieren ejecutar un shell en segundo plano y resula que ya lo lanzaron o por ejemplo despliega muchas letras engorrosas en la terminal y demas cosillas que a los principiantes sysadmins o noobsters nos llega a suceder, bueno aqui un pequeño tutorial.

es comun ejecutar scripts en bash y pearl en la terminal Linux para eso nos ayudamos de ./nombredelscript.sh o pl etc...
pero que pasa cuando lo queremos mandar a segundo plano, basicamente disponemos de 2 opciones

./nombredetushell. & 

colocar al final el simbolo de " & " manda a segundo plano el comando o script que se desea ejecutar
si queremos evitar que nos lance letras o la salida del comando en la terminal podemos agregar:

nohup ./nombredetushell &

con esto ya no veremos salida en la termina y se ira a segundo plano, pero que pasa cuando queremos ver si sigue en ejecución por que este aun no termina.

podemos usar el comando jobs y con este comando seremos capaz de visualizar una lista de los jobs que se estan ejecutando con un numerito [num] que indica la prioridad con la que se ejecuta el job

[1]   running                 /opt/apache/test.sh
[2]+  running                /tmp/shell2.sh > /dev/null


ahora bien supongamos que lo queremos traer a primer plano podemos dar el comando fg para regresar un comando que enviamos a segundo plano a primer plano, de igual forma para enviar el comando nuevamente a segundo plano o bien cualquier otro comando que este en ejecución en primer plano podemos ejecutar ctrl+z para detenerlo y luego el comando bg, al mandarlo a segundo plano en algunas versiones de linux nos regresa el numero de job y el PID vemos un ejemplo:

digamos que yo arranco un shell para ordenar mis mp3 llamado mp3sort.sh

y lo lanzo con ./mp3sort.sh hasta este punto lanzamos la ejecucion pero como tenemos mas cosas que hacer en la terminal y nos es una prioridad, lo mandamos a segundo plano ejecutamos ctrl+z para detenerlo y luego el comando bg .

[2] 2136   

jobs

[1]  done                     ./e.sh
[2]  running                ./mp3sort.sh

Mas tarde nos acordamos que dejamos un shell corriendo y queremos ver en que estatus quedo entonces tecleamos el comando jobs

[1]  running                ./mp3sort.sh


y vemos que sigue en ejecución, entonces nos damos cuenta de que ya lleva mucho tiempo y no funciona o estaba en prueba, entonces lo queremos matar aqui hay de 2 le damos un kill -9 y el pid
en este caso kill -9 2136 para matar el job o bien kill %1 que es el número de job.

entonces ya disponemos de varias opciones para iniciar el job y mandarlo a segundo plano desde un inicio o bien detenerlo y mandarlo a background mode (segundo plano)

haber ahi les va un ejemplo mas complicado


<<<<<<<<<<<<< Matar varios procesos y tareas especificas >>>>>>>>>>>>>>>
ps -fea |grep root| egrep -v "license|samba" | awk '{print $2}' | xargs -I {} kill -9 {}

vamos a desglozar el comando de mas arriba, recuerda que  " | " es una tuberia y redirige la salida del primer comando al seguiente, quiza no es el modo mas elegante de hacerlo, pero es un buen ejemplo de tuberias ;-), vamos!!
sacamos todos los procesos (ps -fea), depuramos con grep al usuario root y con egrep buscamos las palabras que contengan smbd y samba, con awk solo dejamos el PID del proceso, con xargs cachamos la lista  de procesos y la ponemos en un array{} y a todos esos PID les damos un kill -9 {}
las llaves es para indicar el array :-)

algo mas elegante es utilizar el comando pgrep -u myusuario o bien el pkill -u myusuario, tanto pgrep como pkill tienen varias opciones mas para buscar procesos o matarlos.

a la espera de sus comentarios y espero les sirva.




jueves, 28 de marzo de 2013

Comandos Basicos para Monitoreo linux/unix parte 2 update 15/11/2015

Bueno la ultima vez que me pase por aquí fue ya hace mucho rato pero les vengo a publicar otra lista de comandos útiles al momento de monitorear un sistema bien solaris o linux.

Los comandos aquí mostrados son un repost de los anteriormente publicados por diversos bloggers y blogs de tecnología  quizá es buena idea ponerlos aquí   y espero les sea de utilidad.


Para Solaris revisen http://sparcki.blogspot.mx/2009/09/comandos-basicos-y-no-tan-basicos-de.html que muestra varios comandos y tips para administración de solaris en general muy buen blog de Solaris, yo solo hago el re-post de algunos comandos.

También les comparto la siguiente liga donde me encontré una pequeña joya de comandos muy utilizados en sistemas linux, super completo http://www.marioalberto.com.mx/linux/linux.php

Ahora si vamos con los comandos
  • El comando uptime: 
    • la hora actual
    • el tiempo que el sistema está en marcha
    • el número de usuarios conectados
    • la carga promedio del sistema para los últimos 1, 5 y 15 minutos

#uptime
10:21:06 up 5 days, 19:11,  2 users,  load average: 0.08, 0.03, 0.00
  • El comando top: El comando top permite una visión dinámica del sistema en tiempo real. El comando muestra un listado de los procesos que se están ejecutando. Proporciona además un gran número de datos como el uso de la memoria y procesador…

#top
top - 10:21:48 up 5 days, 19:11,  2 users,  load average: 0.04, 0.03, 0.00
Tasks:  73 total,   2 running,  71 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   3632736k total,  1049496k used,  2583240k free,   359636k buffers
Swap:  1991920k total,        0k used,  1991920k free,   255052k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                               
28566  user  16   0  2196 1088  856 R  0.3  0.0   0:00.02 top                                                                                   
    1 root      16   0  1564  532  464 S  0.0  0.0   0:01.21 init                                                                                 
  • free (solo en linux): el comando free muestra información relativa al uso de la memoria. Sin embargo, el resultado mostrado por este comando es estático, para poder visualizar el uso de la memoria de manera dinámica, se le puede agregar el comando watch:

#watch –n 1 –d free
Every 1,0s: free                                               Wed Sep 23 10:22:47 2009
             total     used       free              shared    buffers     cached
Mem:        3632736    1049556   2583180                 0     359644     255072
-/+ buffers/cache:     434840    3197896
Swap:1991920                0    1991920

La opción –n indica el tiempo de refrescamiento de la información y –d para resaltar la evolución de los snapshots.

ahora bien como se lee free?, en el caso de linux, recordemos que linux acostumbra paginar mucho y ocupar mucho espacio es decir hay veces en que la memoria luce menor con el commando top pero al revisarla con free en la segunda fila en memoria cache free, podemos ver que aunque se cacheo mucha memoria realmente tenemos 3197896mb libres, si queremos cambiar como se despliega y ver la memoria en megas o gigas solo usamos la opcio -m y -g respectivamente y asi sera mucho mas comodo, en la parte de arriba recueda que el valor en amarillo representa la memoria real libre y no la memoria total cacheada por el sistema.

  • vmstat: (solaris) proporciona información sobre el uso de la memoria virtual por los threads del núcleo, el disco y la actividad del procesador.

#vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 1  0      0 2583032 359664 255088    0    0     1    14   63    22  1  0 99  0
  • iostat: (solaris/linux)muestra estadísticas sobre la lectura/escritura de los dispositivos (ve detalle mas abajo)
  • iotop: (linux) Seria el equivalente solo para linux del comando iostat que solo aplica en solaris y algunas distros linux

#iostat
Linux 2.6.15-23-386 (owlt02.owliancet.local)  23.09.2009
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,53    0,03    0,04    0,07    0,00   99,33

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               1,53         1,21        28,79     604661   14429814
  • du: muestra el espacio en disco usado por los directorios y sub-directorios, por defecto, partiendo del directorio en uso ‘.’. Si se pasa el nombre de un directorio como parámetro, el análisis se hará sobre éste, por ejemplo si queremos saber cuanto pesan nuestros directorio home podemos dar du -sh /home, cabe mencionar que du suele ser mucho mas preciso que df y esto debido a la forma en la que obtienen los datos uno y otro (en algun otro momento entrare en detalle con algunos "bugs del sistema donde me resulto mas util du que df .
  • df: muestra la cantidad de espacio libre en los diferentes dispositivos montados o pasados como parámetro el ejemplo mas comun es df -h que muestra los puntos de montaje y el porcentaje ocupado en formato humano es decir en Megas y Gigas.
  • ps: muestra una lista de los procesos que se están ejecutando y el nombre del usuario actual, podemos usar como ejemplo ps -u nombredelusuario o ps -uf nombre del usuario  o ps -ef para que nos muestre todos los procesos.
  • who: muestra la lista de usuarios conectados si se usa solo, si usamos who -r veremos el runlevel del sistema, con who -b veremos la ultima ves que se reinicio el sistema o who -a nos da todas las anteriores.

Estos comandos que siguen aplican mas para solaris que para linux como tal y son comandos con información muy especifica, en el caso de vmstat, se explica con mayor profundidad cada una de las columnas, muy util para descifrar la información que realmente se requiere.

 sar (System Activity Reporter) // Solaris y algunas distros linux (red hat por ejemplo)
Esta es una de las mas potentes herramientas con las que cuenta solaris, basicamente sar se puede encender de varias formas aqui veremos cuando ya esta corriendo el servicio (
svcadm enable sar)
podemos usar sar -r para ver las estadisticas de la memoria en kilobytes
o bien el potente sar -u para ver el comportamiento del cpu, altamente recomendable y quiza algo mas atinado que prstat.


sar
-d => display activity for all block device
-g/p => actividades de paginado
-m => mensajes y actividades de semaforos
-u => utilización de  CPU
-v => reporta el estatus de un proceso, i-node (estos me parece tambien los puedes ver con df -i ).

la información del los historicos se salva dentro de /var/adm/sa para solaris o bien para linux en /var/log/sa

 iostat (Input/Output Statistics) en Solaris

Esta herramienta reporta de manera iterativa la actividad de E/S de terminales, discos y cintas, así como el uso del CPU.
La sintáxis típica del comando es algo como lo siguiente:
> iostat 1 5
Esto significa que cada intervalo de 1 segundo y por 5 veces, el comando nos mostrará

tty        sd21          sd23          sd24          sd25           cpu
tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv   us sy wt id
0   76   0   0    0    3   0   17  192   3   75   17   3    7    3  3 22 72
0  693   0   0    0    0   0    0    0   0    0   17   4    6    0  3 48 48
0  670   0   0    0    0   0    0    8   2    5   17   4    8    1  4 24 70
0  670   0   0    0    0   0    0    9   2   12   17   4   11    2  5 24 68
0  670   0   0    0    0   0    0  384   3    7    8   2    9    8  8 40 44


Esto es, se nos muestra información dividida por 6 bloques de columnas, el primer bloque (tty), concentra dos datos tin y tout, aquí lo que se muestra son los caracteres de entrada y de salida.
Las siguientes cuatro columnas (sd21 a sd25), se refieren a estadísticas de 5 discos duros.
Cada uno de estos discos tiene tres columnas que significan:
  • kps: Bloques por segundo.
  • tps: Transacciones por segundo.
  • serv: Tiempo de servicio promedio, en milisegundos.
Finalmente, viene una columna especial para el cpu:
  • us: En modo usuario.
  • sy: En modo de sistema.
  • wt: En espera de E/S.
  • id: En modo idle.
Antes de seguir adelante debo mencionarles que la primera línea corresponde a los valores acumulados desde el inicio del servidor hasta el momento de la siguiente iteración.
Las líneas siguientes se refieren a los datos obtenidos desde el momento de la última iteración hasta un segundo después (para efectos del ejemplo, aunque puede elegirse cualquier otro valor).

Sobre este comando, existe una variante en la cual podemos ver estadísticas extendidas

> iostat -xtc

Una salida típica de este comando sería:

    extended device statistics                      tty         cpu
device        r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b  tin tout  us sy wt id
sd21          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0    0    0   0  0  0 100
sd22          0.0    0.0    0.4    0.4  0.0  0.0   49.5   0   0
sd23          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
En donde cada columna significa:
  • r/s: porcentaje de Lecturas por segundo.
  • w/s: porcentaje de Escrituras por segundo.
  • Kr/s: Kb leídos por segundo. ---> importante para ver la cantidad de lectura
  • Kw/s: Kb escritos por segundo. --> importante para ver la escritura
  • wait: Número promedio de transacciones en espera de servicios (Longitud de la cola)
  • actv: Número promedio de transacciones activamente servidas.
  • svc_t: Tiempo promedio de servicio.
  • %w: Porcentaje de tiempo en que la cola no está vacía.
  • %b: Porcentaje de tiempo en que el procesador está ocupado.
En general este comando nos da información bastante útil respecto al uso que están teniendo los discos del sistema. Ahora, que lo que estaría más interesante sería saber qué procesos están haciendo uso de ellos. De alguna forma también nos puede auxiliar el comando ps, ya que entre sus variadas opciones nos puede mostrar datos sobre el uso de la memoria swap. Aunque esto es sólamente una parte muy pequeña del uso sobre el disco duro pues aún nos faltaría averiguar qué archivos tiene abiertos, en dónde está escribiendo o leyendo, etc.
otra opción seria iostat - xpnc que te arroja la utilización del total de los discos mas la controladora, te invito a que analices las opciones en el man de iostat.

3. lsof (LiSt of Opened Files)

Para tener una idea de qué procesos tienen abiertos archivos regulares, directorios, sockets (Unix e Internet), archivos especiales de bloques, etc; podemos servirnos del comando lsof, que aunque no es nativo de SunOS, se puede incorporar bajando el paquete de http://www.sunfreeware.com/ En donde se encuentra disponible para solaris 6, 8, 9 y 10, para sistemas Linux viene instalado por default (ubuntu, redhat, fedora, centoOS, etc...).

La sintaxis típica es

> lsof 

un ejemplo en linux es lsof elpid.

fuser (solaris 10 en adelante y Linux) : identifica qué procesos están utilizando un fichero o carpeta determinada o un socket por ejemplo tenemos fuser -cu nombredelarchivo o carpeta, o por ejemplo para saber quien esta ocupando un punto de montaje.
o fuser -c

como podemos ver en la imagen de mas arriba salen los procesos que se están ejecutando (PID ) y además el usuario de tal forma que si quiero desmontar /home/rev o simplemente evitar que la ocupen, podemos matar los procesos por ejemplo o monitorizar el uso de la carpeta
<<< comando ejecutado en ubuntu 14.04LTS>>>

para mas detalle sobre fuser da click aqui

revisa las opciones de man, fuser es un comando muy potente.

vmstat (Virtual Memory Statistics) (solo para Solaris)

Reporta estadísticas del uso de la memoria virtual sobre los hilos del kernel, discos, memoria virtual, traps y actividad del CPU su equivalente en Linux puede ser free o bien top que es algo menos preciso o bien cat /proc/meminfo.

La sintaxis simple es:

> vmstat

Y su salida es:
 kthr      memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr s3 -- -- --   in   sy   cs us sy id
0 0 0 3557544 166696 553 1866 6 3 3  0  0  8  0  0  0  397 10621 2212 9 12 78
En este caso

  • kthr: Reporta el número de hilos del kernel en cualquiera de los siguientes estados:
  1. r: El número de hilos en la cola de ejecución
  2. b: El número de hilos bloqueados, en espera de recursos de E/S.
  3. w: El número de procesos ligeros (LWPs) en swap, esperando por ecursos para finalizar.
> vmstat 2 5
 kthr      memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr s3 -- -- --   in   sy   cs us sy id
0 0 0 3557544 166696 553 1866 6 3 3  0  0  8  0  0  0  397 10621 2212 9 12 78
2 0 0 3437616 159800 2128 5211 0 0 0 0  0  0  0  0  0  438 13856 2318 35 19 46
5 0 0 3437616 159792 2324 5604 0 0 0 0  0  1  0  0  0  425 14711 2391 39 20 41
0 0 0 3439064 161616 200 552 0 4  4  0  0  2  0  0  0  362 7254 2126  9  6 86
0 0 0 3439064 161616 7  80  0  0  0  0  0  0  0  0  0  352 6649 2099  6  4 90


Aún con lo que hemos visto hay otra opción interesante para este comando que es el switch -p

> vmstat -p 2 3

Cuya salida sería como esta:

memory page executable anonymous filesystem
swap free re mf fr de sr epi epo epf api apo apf fpi fpo fpf
3555664 166616 553 1867 3 0 0 3 0 0 0 0 0 3 3 3
3439168 157080 7 93 0 0 0 0 0 0 0 0 0 0 0 0
3439160 157072 7 80 0 0 0 0 0 0 0 0 0 0 0 0


Como se observa, se agregan nuevas columnas, esto debido a que el modificador -p hace que vmstat reporte también la actividad de la paginación. Las columnas nuevas significan:

epi Executable page-ins.

epo Executable page-outs.

epf Executable page-frees.

api Anonymous page-ins.

apo Anonymous page-outs.

apf Anonymous page-frees.
fpi File system page-ins.

fpo File system page-outs.

fpf File system page-frees.


Debe decirse que en equipos multiprocesadores, vmstat presenta estadísticas promedio de los procesadores. A fin de tener los datos específicos de cada uno de ellos es necesario usar mpstat, herramienta que se describe a continuación.

 mpstat (Multi Processor Statistics)

Este comando devuelve reportes estadísticos de cada uno de los procesadores o bien, por grupo de procesadores.

La sintáxis común es:

> mpstat

Y su salida es:

CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
0 1028   0  177   353  243 1083   30  366   62    0  5631   10  13   0  77
1  839   0  205    44   14 1129   29  365   51    0  4990    9  12   0  79

Esto significa básicamente que en el sistema tenemos instalados dos procesadores, y si revisamos las cuatro últimas columnas encontraremos algo interesante, ahí se describe el porcentaje que el procesador ha dedicado a procesos de usuario (usr), procesos de sistema (sys), así como el porcentaje de tiempo que ha pasado esperando por E/S (wt) y finalmente el porcantaje de tiempo que el procesador ha estado inactivo (idl).

El resto de las columnas son:
  • minf: Fallas menores
  • mjf: Fallas mallores
  • xcal: Llamadas cruzadas interprocesadores.
  • intr: Interrupciones.
  • ithr: Interrupciones como hilos.
  • csw: Cambios de contexto
  • icsw: Cambios involuntario de contexto
  • migr: Migración de hilos (a otros procesadores)
  • smtx: Spins en mutexes (bloqueo no adquirido en el primerintento)
  • srw: Spins en bloqueos de lectura/escritura (bloqueo no adquirido en el primerintento)
  • syscl: Llamadas al sistema
  • set: Grupo de procesadores al que se pertenece
  • usr: Porcentaje de tiempo en procesos de usuario.
  • sys: Porcentaje de tiempo en procesos de sistema.
  • wt: El tiempo de espera de E/S no se calcula ya como porcentaje de tiempo de CPU, por lo tanto siempre va a regresar 0 su medición.
  • idl: Porcentaje de tiempo sin utilizar.

Comandos proc (Processes Commands)

Este conjunto de comandos toma información sobre los procesos en especial entonces si queremos buscar un proceso podemos usar pgrep y el PID (process ID) 
para problemas con Java podemos utilizar pstack siendo este comando sumamente util para ver el comportamiento de una app en cuanto a consumo de memoria.

Tambien tenemos el comando pkill y el process id para matar un proceso  muy similar al kill -9
  • pflags:
  • pcred
  • pldd
  • psig
  • pstack
  • pfiles
  • pstop
  • prun
  • pwait
  • ptime

Honor a quien honor merece y les dejo la fuente original

viernes, 19 de octubre de 2012

Especial respaldos en unix/linux parte 2

Bueno continuamos con las herramientas y utilerias de respaldo 
Les comento de rsnapshot que es una herramienta que permite respaldos con alta compresión, se ayuda de 
rsync y ssh para su operación, escrito en pearl, permite la publicación de copias incrementa-les.

Para su instalación 

En Debian (o Ubuntu):

  apt-get install rsnapshot 

Como el tutorial es algo extenso les dejo la pagina de donde pueden consultar la instalación y configuración de rsnapshot guide-to-rsnapshot-and-incremental-backups-on-linux

El enlace se encuentra en Ingles, ya me dedicare a realizar la traducción ;)

Rsnapshot se puede utilizar en scripts, y programar su automatización en crontab como eh comentado para otras utilerias.

Otra herramienta muy potente es Backuppc.

Backuppc: es un herramienta orientada un poco más al sector profesional que permite realizar copias de seguridad en Linux y Windows en un dispositivo de almacenamiento en un servidor o unidad.

Esta herramienta extrae los datos con la ayuda de Samba o bien con el comando tar,la transferencia se realiza según se requiera por medio de ssh, rsync entre otros.

Instalación en ubuntu

 apt-get update
 apt-get install backuppc

Esto instalara backuppc con sus dependencias, creara un usuario con el mismo nombre "backuppc", e instalara Apache, de tal forma hay que tener en cuenta si ya se tenia instalado.

Puedes ingresar a la consola de administración en la siguiente URL de tu navegador "http://SERVER-IP/backuppc" por default.

También hay que anotar la contraseña proporcionada por el instalador.

Cabe mencionar que backuppc se puede configurar para conectarse y autenticarse con otros ordenadores o servidores.

La configuración consiste en logearse con el usuario backuppc ( su backuppc ) 
generar claves ssh " ssh-keygen-t rsa".

Acepte la ubicación de instalación por defecto (el directorio home del usuario backuppc) y deje en blanco la contraseña.

Después,  copia la clave pública RSA (id_rsa.pub) en el archivo authorized_keys para el usuario root de cada uno de los servidores o pc que deseas hacer una copia de seguridad (hay varias maneras de lograr esto):

 [Copiar la clave pública]
 ssh root @ server-ip
 [Enter Password]
 CD
 vi authorized_keys  (aqui puedes usar cualquier editor de texto solo ten cuidado de no dejar espacios al final del archivo)
 [PEGA LA LLAVE Y GUARDA EL ARCHIVO] 
Ahora, ya que estamos en el servidor de donde se va a hacer una copia de seguridad, compruebe que está instalado rsync:
  apt-get update
 apt-get install rsync 

Por último, compruebe que ahora puedes inciar una sesión SSH desde el servidor de copia de seguridad en el servidor que se desea sustraer la copia de seguridad como usuario backuppc:

  Su backuppc
 ssh root @ server ~-IP
 [TENDRÁ QUE ACEPTAR known_hosts LA PRIMERA VEZ SOLAMENTE] 

Introduce la contraseña, Asegúrate de que los permisos del archivo authorized_keys están bloqueados a rw para root como propietario único.

Asegúrate de hacer SSH en cada servidor / ordenador desde el servidor donde se hacen las copias de seguridad a los servidores de donde se quiere sustraer la copia.
Basta con repetir lo anterior para cada servidor / ordenador  para agregarlo al servidor Backup
Anexo la fuente original ya que plantea algunas soluciones si el apache ya esta instalado y en caso de que hayas olvidado anotar la password generada para el usuario "backuppc"
Por ahora hasta ahí le dejamos ya que hay que revisar muchas más herramientas cualquier duda, pues por aquí andamos ;-)

jueves, 19 de julio de 2012

Respaldos con Tar

Saludos hoy la entrada es nuevamente una herramienta popular entre los usuarios de unix y linux,
la herramienta tar para compresión y respaldo de archivos.

Empezamos :-)

Que es tar ?
Segun la wiki


Tar se refiere en Informática a un formato de archivos ampliamente usado en entornos UNIX, identificados con la extensión tar. Además hace referencia al programa para la manipulación de archivos que es estándar en estos entornos.
El formato fue diseñado para almacenar archivos de una forma conveniente en cintas magnéticas y de allí proviene su nombre, que proviene de "Tape ARchiver" (en inglés: archivador en cinta). Debido a este origen el formato está preparado para ser procesado linealmente, no contando con manera de extraer un miembro sin recorrer todo el archivo hasta encontrarlo.

http://es.wikipedia.org/wiki/Tar

El uso de tar es

tar argumentos miarchivo.tar archivocopia archivocopia1 ...

Bueno quedando claro esto vamos a las opciones


Ejemplos de opciones más usadas
actividadopciónejemplo
descomprimir/extraer-xtar -xf paquete.tar
visualizar lo que se realiza-vtar -xvf paquete.tar
archivar/crear el directorio kernel (y subdirect.)-ctar -cvf paquete.tar kernel/
comprimiendo con bzip2-jtar -cjvf paquete.tar.bz2 kernel/
comprimiendo con lzma-Jtar -cJvf paquete.tar.lzma kernel/
comprimiendo con gzip-ztar -czvf paquete.tar.gz kernel/
comprimiendo con lzip--lziptar -cvf paquete.tar.lz --lzip kernel/
comprimiendo con compress-Ztar -cZvf paquete.tar.Z kernel/
comprime utilizando la extensión facilitada en el nombre del fichero (ej. para bz2)-atar -cavf paquete.tar.bz2 kernel/
muestra el contenido de un archivo tar-ttar -tvf paquete.tar.bz2 kernel/


http://es.wikipedia.org/wiki/Tar

Ahora un ejemplo practico y expliquemos


Pwd: /home
[] (espartan): tar -cvf  /home/espartan/respalditol19JUL2012.tar   /etc/

Expliquemos

la primera parte "tar" llama a la aplicacion, "-c" archiva o copia la vista del archivo, "v" activa el modo verbose para visualizar los archivos que se están creando dentro del tar, "f" file. Utiliza el argumento fichero tar el nombre del archivo tar. es decir el nombre que deseamos y la ruta donde va a quedar; posterior a los argumentos sigue la ruta con el nombre del archivo a como queremos que se llame, y luego vendrían los archivos o carpetas a respaldar (/etc/)

Para descomprimir utilizaremos la opcion "-x"
como tar -xvf  home/espartan/respalditol19JUL2012.tar  /home/espartan/respaldos 
recuerda si usaste compresion debes descomprimir primero y luego aplicar la decompress o 

Tar entonces nos ayuda a empaquetar varios archivos y crear una copia, podemos anexar varios archivos y a estos agregar la compresión, para habilitar la compresión hay varias formas de hacerlo si anexamos tar -cfz
estariamos comprimiento con con gzip al agregar la letra "z" de igual modo si utilizamos "Z" estaremos usando la opción de compress o Z file el cual podremos leer con zcat

Por que para respaldos?, bueno es una opción sencilla de empaquetar los archivos que deseemos, puedes empaquetar gran capacidad de datos y es muy recomendable aplicar la compresión ya que te ahorrara buen espacio yo suelo utilizarlo con gzip -9 para maxima compresión y es de fácil integración en un shell, es una herramienta poderosa y se encuentra en prácticamente todo los sistemas unix/linux.

Las ventajas son múltiples y podemos leerlo con varias utilerias tales como winrar o winzip para poder leerlo en windows.

espero les sirva :-D



lunes, 21 de mayo de 2012

Seguridad Unix y Linux, parte 1 (Shadow)

 Shadow
Bueno pues en esta ocacion cito a grandes rasgos lo que maneja esta suite que ya tiene algun tiempo,
/etc/shadow, es un archivo de configuración para encriptar las passwords en sistemas Unix 



SHADOW
Seccion: Formato de Archivos (5)
NOMBRE
shadow - archivo de passwords encriptados
DESCRIPCIÓN
shadow contiene la información encriptada para las cuentas de usuarios y opcionalmente la información de caducidad del password.
Está incluido
- Nombre de usuario
- Password Encriptado
- Dias desde 1 Enero, 1970 que el password fue cambiado
- Dias antes de que el password pueda ser cambiado
- Dias despues de los cuales el password debe ser cambiado
- Dias antes en los que el usuario será advertido antes de que el password expire
- Dias despues de 1 Enero de 1970, en los cuales la cuenta será deshabilitada     luego del password expirar
- Un campo reservado
El password debe ser llenado.
El password encriptado consiste en 13 a 24 carácteres del alfabeto de 64 caracteres de a hasta z, A hasta Z, 0 al 9, . y /. Referirse a crypt(3) para detalles acerca de como es interpretada esta cadena.
El dia del ultimo cambio de password es dado como el número de dias desde 1 Enero, 1970. El password no puede ser cambiado nuevamente hasta que esos dias hayan pasado, y debe ser cambiado antes número máximo de dias. Si el número mínimo de dias requerido es mayor que el máximo numero de dias permitido, este password no puede ser cambiado por el usuario.
Una cuenta es considerada como inactiva y deshabilitada si el password no es cambiado dentro de el número de dias especificado luego de que el password expire. Una cuenta tambien será deshabilitada en los dias especificados no obstante la información de expiracion restante.
Esta información trasciende cualquier password o información de tiempo de password presente en /etc/passwd.
Este archivo no debe ser leible por usuarios regulares si se mantendrá la seguridad de los passwords.
ARCHIVOS
/etc/passwd - user account information
/etc/shadow - encrypted user passwords
VER TAMBIEN
chage(1), login(1), passwd(1), su(1), passwd(5), pwconv(8), pwunconv(8), sulogin(8)
AUTOR
Julianne Frances Haugh (jockgrrl@ix.netcom.com)

De modo que tomando como ejemplo la linea correspondiente , en /etc/shadow , tenemos algo como esto:
jespinal:$1$N9L1HjIf$.YbfoPCCZmrqemk4zwYUb4:13918:0:::::0
Se sigue viendo medio feo, pero por lo menos se entiende, ya que sabemos que segun el man page:
Nombre de usuario
jespinal
Password Encriptado
$1$N9L1HjIf$.YbfoPCCZmrqemk4zwYUb4
Dias desde 1 Enero, 1970 que el password fue cambiado
13918
Dias antes de que el password pueda ser cambiado
0
Dias despues de los cuales el password debe ser cambiado
 vacio, es decir, no debo cambiarlo :) 
Dias antes en los que el usuario será advertido antes de que el password expire
 tampoco estoy usando este campo
Dias despues de 1 Enero de 1970, en los cuales la cuenta será deshabilitada luego del password expirar
ya que mi cuenta no va  a expirar, tampoco se usa esto
Un campo reservado
0
Shadow maneja varios tipos de encripciones donde la mas comun es MD5
Opcionalmente se puede comenzar con un carácter "$". Esto significa que la contraseña encriptada se ha generado utilizando otro algoritmo (no DES). Por ejemplo, si comienza con "$ 1 $", significa que el algoritmo MD5 basado fue utilizado.

la wikipedia nos da mas detalles sobre los metodos de encripcion manejados, sobre lo que eh leido aunque MD5 no es el mas seguro si suele ser el estandar. 



Algunos directorios linux/unix

Saludos nuevamente les traigo una pequeña lista de los directorios linux espero les pueda ayuda, la fuente antes que nada por si gustan consultar el tutorial completo :-)

Tutorial linux, y comandos basicos


Cambia la contraseña de usuario en linux/unix

Pues solo recordandoles un comdo muy sencillo para cambiar la contraseña de unix/linux,
"passwd" posteriormente te pedira teclear tu password anterior y lugo la nueva contraseña si lo haces como root cambiaras la password de administrador, ojo con este comando anota bien tus contraseñas ;-)

"passwd generalmente funciona manipulando el archivo donde se guardan los usuarios y sus contraseñas (comúnmente /etc/passwd, o /etc/shadow si se usan contraseñas shadow), lo que significa que la contraseña cambiada aplica sólo al computador en el cual se ejecutó el comando. Si se está usando PAM, en cambio, como puede ser en GNU/Linux, Solaris, FreeBSD o NetBSD, la instrucción passwd se puede usar para cambiar la contraseña del mecanismo de autenticación que esté usándose en el momento, sea NIS, Kerberos, LDAP, o cualquier otro para el que haya un módulo de PAM."

wikipedia

Comandos Basicos para Monitoreo linux/unix 1 update 05-01-2015

Saludos les publicare algunos tips sumamente basicos para el  monitoreo de nuestro sistema en Linux o unix, la segunda parte abarca algunos comandos mas avanzados comandos-para-monitoreo-parte-2-solaris/linux.html

primero empezaremos con " uname -a " el cual nos mostrara el nombre y versión del sistema operativo que estamos utilizando.
el comando funciona de manera genérica para cualquier plataforma unix.

También un comando sumamente importante es prtdiag -v dentro de solaris, este comando nos sirve para ver el estatus del servidor desde la ram hasta el estatus del todo el hardware que se encuentra funcionando, asi como la version de firmware y otros componentes.

Del mismo modo tenemos " psrinfo -v " que proporciona la información de los procesadores, de favor si me corrigen ya que ignoro si esto aplique también para osx, ya que me parece solo aplicaría para solaris y algunas distros linux.

Status of virtual processor 0 as of: 05/21/2012 11:21:18
  on-line since 05/06/2012 17:12:36.
  The sparcv9 processor operates at 2520 MHz,
        and has a sparcv9 floating point processor.
Status of virtual processor 1 as of: 05/21/2012 11:21:18
  on-line since 05/06/2012 17:13:32.

Para ver la memoria disponible " prtconf | grep Memory " solo para solaris.
Memory size: 20480 Megabytes

Para conocer la cantidad de memoria ram de nuestro sistema Solaris, así como la cantidad y el tipo de CPU, tarjetas PCI y dispositivos externos con los que contamos ejecuta el siguiente comando:

/usr/platform/`uname -i`/sbin/prtdiag

Para saber el nombre de la maquina en unix o linux, tenemos 2 opciones, " uname -n " o bien hostname, ignoro si aplica para todas las distros, los eh probado en ubuntu y solaris.

Para saber nuestra ip, tecleamos " ifconfig -a " o solo " ifconfig " y nos proporcionara información referente a la ip (s) configuradas para nuestro equipo.

Uno muy util es cuando queremos saber los procesos asignados a nuestro usuario, en tal caso usuamos "ps -fu nombreusuario" en donde "nombreusuario" es el user id o nombre del usuario con el que iniciamos sesion o " ps -ef  " que también nos mostrara los procesos que se están ejecutando.

Para ver el estado de la memoria podemos hacerlo con "vmstat" aunque para este comando hay muchas opciones, podemos tomar por numero de muestras y/o intervalos de tiempo, para este comando le dedicare un poco mas de tiempo en futuras entradas, por lo pronto podemos usar el manual con "man vmstat" en la consola y un ejemplo seria vmstat 3 6 el cual toma muestras cada 3 segundos y tomara 6 muestras

 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr m0 m1 m3 m4   in   sy   cs us sy id
 0 0 0 199603904 164565344 94 409 62 134 134 0 0 0 0 0 0 6809 13802 7377 0 1 99
 1 0 0 196558024 160959592 0 78 0 206 206 0 0 0 0 0  0 6827 16920 7403 0  1 99
 1 0 0 196557528 160959304 0 2 0 73 73 0 0  0  0  0  0 6825 9409 7181  0  2 98
 0 0 0 196557528 160958624 47 51 0 377 377 0 0 0 0 0 0 7013 9912 7734  0  1 98
 0 0 0 196557312 160959712 105 720 0 76 76 0 0 0 0 0 0 7236 17293 8342 0  1 99
 0 0 0 196557528 160960160 0 30 0 102 102 0 0 0 0 0  0 6735 12328 6987 0  2 98

Para ver el espacio en disco podemos usar df -k (bytes) o df -h (formato megabytes o human)
df -h
Filesystem             size   used      avail capacity  Mounted on
/                           68G    8.7G    59G     13%    /
/HTTPServer       2.0G   254M   1.6G    14%    /HTTPServer
/NDM36             2.0G   387M   1.5G    20%    /NDM36
/WebSphere61    5.0G    2.3G    2.5G    48%    /WebSphere61
/arqnacar            10G     20M    9.4G     1%    /arqnacar
/backlogs            2.0G   18M     1.9G     1%    /backlogs
/bladelogic          2.0G   117M   1.8G     7%    /bladelogic
/ctrlmagt             2.0G   163M   1.7G     9%    /ctrlmagt
/dev                   68G     8.7G     59G     13%    /dev

Ahora bien para saber el espacio de una carpeta / filesystem podemos usar "du -ha", este comando informara sobre el tamaño de los archivos en una carpeta de forma re cursiva.

prstat -as cpu que muestra de forma ordenada los procesos que se están ejecutando y se actualiza mas o menos cada 2 segundos, solo aplica para ciertos sistemas unix  (Solaris) y sirve para monitorizar también el consumo de CPU, memoria ram, swap, usuarios, es el equivalente de top en linux.



Actualización ------------

También para ver los usuarios conectados podemos utilizar, who y finger, ambos comandos muestran las sesiones conectadas a nuestro sistema. finger proporciona mayor detalle y puede ser un comando restringido al proporcionar información sensible.

y tenemos uptime, que muestra el tiempo que lleva nuestro equipo funcionando desde el último reinicio o bien apagado.

Continua comandos-para-monitoreo-parte-2-solaris/linux.html

Have  nice day