mar 24 2010

Comandos para saber el hardware desde Linux

Category: LinuxDavid González @ 1:27

Vamos a ver algunos comandos para saber el tipo de hardware que tenemos instalado en nuestro servidor o pc.

En la carpeta /proc, tenemos varios archivos que poseen información sobre la cpu, memoria, etc… Estos son algunos ejemplos:

  • Información de la/s cpu’s (sólo pego el resultado de la 1ª cpu)
root@server [~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 26
model name      : Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz
stepping        : 5
cpu MHz         : 2000.117
cache size      : 4096 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 4
apicid          : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips        : 4000.23
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: [8]
  • Información de la memoria Ram
root@server [~]# cat /proc/meminfo
MemTotal:     16433556 kB
MemFree:      11701760 kB
Buffers:        270512 kB
Cached:        4016800 kB
SwapCached:          0 kB
Active:        2084428 kB
Inactive:      2389568 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:     16433556 kB
LowFree:      11701760 kB
SwapTotal:     2096472 kB
SwapFree:      2096472 kB
Dirty:            2588 kB
Writeback:           0 kB
AnonPages:      186604 kB
Mapped:          18080 kB
Slab:           219132 kB
PageTables:       9452 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:  10313248 kB
Committed_AS:   530848 kB
VmallocTotal: 34359738367 kB
VmallocUsed:    265212 kB
VmallocChunk: 34359471743 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     2048 kB
  • Información de la memoria swap:
root@server [~]# cat /proc/swaps
Filename                Type        Size    Used    Priority
/dev/cciss/c0d0p3                       partition    2096472    0    -1
  • Información a cerca del kernel, versión de linux:
root@server [~]# cat /proc/version
Linux version 2.6.18-164.11.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Wed Jan 20 07:32:21 EST 2010
  • Información de la carga del servidor (loadaverage)
root@server [~]# cat /proc/loadavg
0.04 0.08 0.08 1/169 29297

Si queréis podéis echar un vistazo a estos ficheros ya que exiten más y con mucha información.

A parte de estos ficheros ubicados en /proc, disponemos de comandos que también tienen mucha información de nuestro hardware.

  • Comando lshal (saca información del modelo de servidor, versión del firmware, serial del server, versión de la Bios, versión del kernel, todo tipo de información del procesador, información de los discos, puntos de montaje, particiones, así como de los usb, pci y un largo etcetera… Sólo mostraré algunos ejemplos)
root@server [~]#  lshal | more

system.product = 'ProLiant DL360 G6'  (string)

system.firmware.release_date = '07/24/2009'  (string)

smbios.system.serial = 'CZJ9XXXXXXX'  (string)

smbios.bios.version = 'P64'  (string)
system.kernel.version = '2.6.18-164.11.1.el5'  (string)info.product = 'Intel(R) Xeon(R) CPU           E5504  @ 2.00GHz'  (string)

volume.is_mounted_read_only = false  (bool)
volume.is_mounted = true  (bool)
volume.mount_point = '/'  (string)
volume.label = '/'  (string)

volume.size = 70038259200  (0x104e9b0600)  (uint64)
volume.num_blocks = 136793475  (0x8274d83)  (int)
volume.block_size = 512  (0x200)  (int)
  • Comando lshw (muestra información del sistema, discos, memorias, pci, usb… sería como ls del hardware. Sólo voy a poner algunos ejemplos de la salida). Podemos usar el parámetro “-sort” para ordenar y “-html > archivo.html” para exportarlo a este tipo de fichero.
root@server [~]# lshw

*-memory
description: System Memory
physical id: 1b
slot: System board or motherboard
size: 1GiB

*-pci

*-display:0 UNCLAIMED
description: VGA compatible controller
product: RV410 [Radeon X700]
  • Comando lspci (lista los dispositivos pci. Sería como un ls de pci)
root@server [~]# lspci

02:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
  • Comando lsusb (lista los dispositivos usb. Listaría los puertos usb)
root@server [~]# lsusb

Bus 005 Device 002: ID 05e3:0760 Genesys Logic, Inc. USB 2.0 Card Reader/Writer

Entradas relacionadas

Etiquetas: , ,


mar 21 2010

Tareas automáticas con cron

Category: LinuxDavid González @ 22:39

Vamos a dar la receta para usar el comando cron y poder sacarle partido a las tareas automáticas.

Cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab.

Cron se podría definir como el “equivalente” a Tareas Programadas de Windows.

yum install vixie-cron.i386
  • Comandos de Cron:

crontab [-u usuario] [ -e | -l | -r ]

-e (editar el crontab)
-l (listar los cron)
-r (borrar los cron configurados)
-i (pregunta antes de borrar los cron configurados)
-s (selinux context)

Por ejemplo, si queremos listar los cron que tiene el usuario ususario1:

crontab -u usuario1 -l

Si tenemos creado el fichero cron, podemos añadirlo al usuario de este modo crontab [-u user] file

crontab -u usuario1 /home/usuario1/cron

Si no especificamos el usuario con la opción -u, estaremos editando los cron de root

  • Restringir el uso del comando cron:

Es posible permitir o denegar a los usuarios la creación de estas tareas. Para ello hay que editar el fichero cron.allow (para permitir) y cron.deny (para denegar).

Simplemente, habría que poner los usarios uno en cada línea. Suelen estar estos ficheros en /etc/

  • Fichero crontab

Al editar el cron de un usuario, con la opción “-e” nos abrirá el editor definido en la variable de entorno. Si queremos cambiar el editor por defecto, debemos especificarlo en .bashrc de tu usuario o de root, con estas líneas:

export VISUAL="vim"
export EDITOR="vim"

No hay que olvidarse de recargar el bashrc:

source ~/.bashrc

En el fichero crontab, podemos especificar algunas variables como son:

SHELL -  indica el entorno ‘shell’ en la que se ejecuta el cron
PATH – especifica la/s ruta/s donde buscará los binarios a ejecutar
MAILTO -  cuenta de email, donde se mandará un correo al finalizar la tarea
HOME – directorio raiz que tomara el cron

Por ejemplo:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

Su sintaxis, es muy sencilla. Esta compuesto de 5 dígitos o asteríscos “*” separados por espacio y el comando a ejecutar.

##########################################################
#minuto (0-59),                                          #
#|  hora (0-23),                                         #
#|  |  día del mes (1-31),                               #
#|  |  |  mes (1-12),                                    #
#|  |  |  |  día de la semana (0-6 donde 0=Domingo)      #
#|  |  |  |  |       comandos                            #
##########################################################
15 02  *  *  *  /script/actualiza.sh

Hay que puntualizar, que se pueden poner varios valores en un mismo ‘campo’ de esta forma:

Se ejecutaría el comando who todas las horas, en los minutos 2, 10, 20 y 45

2,10,20,45 * * *  * /usr/bin/who

También es posible usar “/x” en los minutos, horas, días para indicar un intervalo, cada x minutos, cada x horas, cada x diás.

Ejecutar el comando who cada 5 minutos:

*/5 * * * * /usr/bin/who

Para evitar que nos mande el email una vez haya completado la tarea, podemos redirigir la salida de este modo.

Cada dos horas, borrar los ficheros temporal*:

* */2 * * * rm -f /home/usuario1/tmp/temporal*  > /dev/null 2>&1

Si nos resulta útil, también podemos redirigir la salida a un fichero de texto de este modo, a modo de log:

Todos los días a las 5:00, listaría los ficheros de la carpeta /home/usuario1/tmp/

0 5 * * * ls -las /home/usuario1/tmp/  >> /home/usuario1/cron.txt

Es muy importante poner dos “>>” para que cada vez escriba al final del archivo, ya que de poner sólo uno “>”, cada vez que se ejecute nos macharía la salida anterior. También hay que tener en cuenta la salida del cron ya que de ser muy grande, podemos crear un log de mucho tamaño.

Por último, recordar que el signo # sirve para comentar, tanto una linea que no queremos que se ejecute, como algún comentario que hayamos puesto.

Por si sirve de ayuda, aquí tenéis un generador.

Entradas relacionadas

Etiquetas: ,


mar 17 2010

Comprimir y Descomprimir ficheros en Linux

Category: LinuxDavid González @ 18:06

La receta de hoy es para saber, dependiendo del tipo de fichero, el comando para poder descomprimir un archivo en linux desde consola. En primer lugar, lo que deberíamos hacer es utilizar el comandofile” al fichero para ver el tipo de archivo.

La manera de usarlo sería:

$ file fichero.tar.gz
fichero.tar.gz: gzip compressed data, from Unix, last modified: Fri Aug 17 04:42:00 2007

Una vez identificado el tipo de fichero, vamos a ver los comandos básicos para comprimir y descomprimir.

TAR - POSIX tar archive (GNU)

  • Comprimir
tar -cvf ficheros.tar carpeta/ficheros*
  • Descomprimir
tar -xvf ficheros.tar
  • Ver contenido
tar -tvf ficheros.tar

TAR.GZ – gzip compressed data

  • Comprimir
tar -czvf ficheros.tar carpeta/ficheros*
  • Descomprimir
tar -xzvf archivos.tar.gz
  • Ver contenido
tar -tzvf archivos.tar.gz

GZ – gzip compressed data

  • Comprimir (creará un fichero llamado archivo.gz)
gzip archivo
  • Descomprimir
gzip -d archivo.gz
  • Ver contenido
gzip -l archivo.gz

ZIP – Zip archive data

  • Comprimir
zip archivos.zip carpeta/archivos*
  • Descomprimir
unzip  archivos.zip
  • Ver contenido
unzip -v archivos.zip

RAR – RAR archive data

  • Comprimir
rar a fichero.rar carpeta/fichero*
  • Descomprimir
unrar x fichero.rar
  • Ver contenido
rar v fichero.rar
rar l fichero.rar

BZ2 – bzip2 compressed data

  • Comprimir (creará un fichero llamado archivo.bz2)
bzip2 archivo
bunzip2 archivo
  • Descomprimir
bunzip2 archivo.bz2
bzip2 -d archivo.bz2
  • Ver contenido

No tiene opción de listar

TAR.BZ2 – bzip2 compressed data

  • Comprimir

tar -c ficheros | bzip2 > archivo.tar.bz2

  • Descomprimir

bzip2 -dc archivo.tar.bz2 | tar -xv

  • Ver contenido
tar jvxf archivo.tar.gz
bzip2 -dc archivo.tar.bz2 | tar -t

Es importante saber que gzip ó bzip2 sólo comprimen ficheros. Para comprimir directorios usaremos tar.

Hay que recordar, que podemos ver todas las opciones de cada comando con el parámetro –help. P.e:

 tar --help

Entradas relacionadas

Etiquetas: , , , , , , , ,


« Página anterior