domingo, 7 de julio de 2013

Buscando desde la consola linux

El comando find se utiliza en gran parte para buscar archivos en sistemas linux. Con find podemos realizar busquedas especifica, para eso tendremos que agregar unos parámetros, observemos los ejemplos descritos a continuación.

El comando find puede buscar los archivos en el directorio actual y sus subdirectorios, ejemplo:

~$find
./Maildir/.INBOX.Drafts
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/Tmp2
/Maildir/.INBOX.Drafts/tmp3
./Maildir/.INBOX.Drafts/new
./Maildir/.INBOX.Drafts/cur
./Maildir/.INBOX.Drafts/maildirfolder

Si queremos encontrar con find los archivos con nombre "tmp" se utiliza el argumento "-name".
veamos el siguiente ejemplo:
~$find -name "tmp*"
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/tmp3

Ahora si quisiéramos encontrar con find todos los archivos tmp pero sin importar si es mayuscula/minuscula utilizaremos el argumento "iname", este para obtener archivos con nombres que no son.

observemos el siguiente ejemplo: 
~$find -iname "TMP*"
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/Tmp2
/Maildir/.INBOX.Drafts/tmp3

Buscaremos con find archivos creado en un directorio especifico. puedes usar "name" o "iname"

ejemplo:
~$find /home/jack/ -iname "*.pdf"
/home/jack/phone.pdf
/home/jack/iphone.pdf
/home/jack/sip.pdf

Encontrar todos los ficheros en la carpeta "home"
~$find /home/  -type f

Encontrar todos los directorios en la carpeta "home"
~$find /home/  -type d

Para localizar los archivos que tienen una cierta cantidad de caracteres, usaremos la letra "c" la cual es la abreviatura de "Characters".
Buscando archivos con exactamente 1.000 caracteres
~$ find -size 1000c

Buscando archivos con mas de 1.000 caracteres
~$ find -size +1000c

Buscando archivos con menos de 1.000 caracteres
~$ find -size -1000c

Encontrar los archivos que contienen entre 600 y 700 caracteres.
~$find -size +599c -and -size -701c

Encontrar directorios y ficheros vacios
$ find  -empty

Podemos utilizar find para buscar archivos de determinado tamaño, estos pueden ser en:
c = bytes
w = 2 palabras byte
k = kilobytes
b = bloques de 512 bytes

Buscar archivos con determinado tamaño
~$find /home/jack/ -size 48k

Buscar archivos con mas tamaño
~$find /home/jack/ -size +48k

Buscar archivos con menos tamaño
~$find /home/jack/ -size -48k


Find puede realizar búsquedas basadas en fechas, para eso debemos de saber los operadores.
Acceso                 ==>> -atime(dia),-amin(minutos)
Cambio de estado ==>> -ctime(dia),-cmin(minutos)
Modificación         ==>> -mtime(dia),-mmin(minutos)

Buscar archivos que fueron accedidos hace 2 dias
~$find /home/jack/ -atime +2

Buscar archivos que fueron modificados hace menos de 5 min
~$find /home/jack/ -cmin -5

Buscar archivos que fue accedido entre 6 y 15 min atras
~$find /home/jack/ -amin +5 -amin -15


En este ejemplo buscaremos con find archivos depositados hace 5 minutos con el operador mtime.
~$find /home/jack/ -mtime -5 -iname "*pdf"
/home/jack/iphone.pdf

Tambien podemos localizar los archivos que han sido modificados desde una fecha/hora propuesta utilizando "touch", para eso almacenaremos la fecha y hora en el archivo temporal "busqueda".
~$touch -d "24 jun 2013 21:45:00" busqueda

Luego utilizaremos busqueda y el parametro "newer" para encontrar los archivos creados despues de la fecha  almacenada en busqueda, ejemplo
~$ find /home/jack/ -newer busqueda

Ahora para buscar archivos creados antes de esa fecha, utilizaremos el parametro el cnewer, ejemplo:
~$ find /home/jack/ -cnewer busqueda

Ahora buscaremos con find archivos y directorios creados por usuario y grupo.
Encontrar archivos propiedad del usuario jack
~$find /home/ -user jack -type f

Encontrar directorios propiedad del grupo nerd
~$find /home/ -group nerd -type d

Con find podemos buscar archivos que no pertenecen a ningún usuario/grupo, estos con el fin de encontrar  algun comportamiento inusual de nuestro linux.
Buscar archivos que no pertenecen a ningún usuario
~$find /etc/ -nouser

Buscar archivos que no pertenecen a ningún grupo
~$find /etc/ -nogroup

Buscar archivos que tienen uid entre 500 y 1000.
~$find /etc/ -uid +500 -uid -1000 -type f

Find puede encontrar archivos de lectura, escritura y de ejecucion.
lectura ==>> -readable
escritura ==>> -writable
ejecucion ==>> -executable

buscar archivo ejecutable en home
~$find /home/ -executable

Buscar archivos con determinados permisos usando find.
~$find /home/ -perm 664

viernes, 22 de marzo de 2013

Comandos cat, more, less, tail y head


Comando cat en linux
Este comando linux puede ser utilizado para imprimir los datos de un archivo o mas en la pantalla y/o unir varios archivos juntos en un solo archivo .
 
uso:
%cat test.txt
Imprime en la pantalla el contenido del archivo test.txt.
 
%cat test.txt prueba.txt
Imprime en la pantalla el contenido de ambos archivos
 
%cat test.txt prueba.txt > resultado.txt 
Combina los archivos test.txt y prueba.txt en un nuevo archivo llamado resultado.txt
 
%cat test1.txt >> resultado.txt 
Adjuntar el archivo test1.txt al archivo resultado.txt
 
cat >> resultado.txt
Añade datos adicionales al archivo resultado.txt

Para mas informacion consultar en la consola linux,
%man cat 


 Comando more en linux
Este comando linux es para imprimir en la pantalla un archivo de texto por página presionando la barra espaciadora para ir a la página siguiente o por porcentaje presionando el enter.

uso:
%more test.txt
Imprime en la consola el documento de una página a la vez

more -num test.txt
Muestra la linea seleccionado del documento como se especifica en (num)

Ejemplo: %more -10 test.txt
Muestra las 10 primeras líneas del archivo especificado. Presiona Enter para mostrar el archivo línea a línea.

Para mas informacion consultar en la consola linux,
%man more

.
Comando less en linux
Con este comando de linux tenemos algunas opciones:

a) Se puede navegar por la página de arriba hacia abajo o viceversa.
b) Puedes buscar una cadena con el uso de la "/", ejemplo /call 
c) Utiliza las mismas funciones como editor vi
 
uso:
less test.txt

Para mas informacion consultar en la consola linux,
%man less

 
Comando tail en linux
El comando tail en linux se usa para mostrar la parte final de un archivo.

uso:
tail test.txt
Imprime en la consola por defecto las últimas 10 líneas del archivo test.txt.


tail -50 test.txt 
Imprime la lineas 50 del fichero

Para mas informacion consultar en la consola linux,
%man tail

Comando head en linux   
En linux el comando head imprime en pantalla las primeras diez líneas de un archivo a menos que se indique lo contrario.

uso:
head test.txt 
Imprime en consola linux las primeras diez líneas del archivo test.txt.

head -15 test.txt
Imprime en la consola linux las primeras quince líneas del archivo test.txt

Para mas informacion consultar en la consola linux,
%man head

sábado, 16 de marzo de 2013

Cambiar los permisos y propietario de directorios y archivos en Linux

Permisos de archivos de Linux

Aprenda a entender quiénes son los propietarios de un archivo o directorio, como funcionan los permisos de archivos y la forma en que usted puede ver y aprender cómo establecer permisos de archivos básicos.

Permisos y propiedad

Si no puedes acceder a algunos de los archivos en tu sistema Linux, por lo general puede ser una mala configuracion de los permisos en los archivos. Si eres el único usuario en tu máquina Linux, puede que te preguntes cuál es el punto de tener todos estos permisos que restringen tu acceso a su propio sistema operativo del pingüino. Sin embargo, usted debe tener en cuenta que Linux está diseñado para ser un entorno multi-usuario. En un entorno con más de un usuario, es fundamental contar con un sistema seguro para decidir qué archivos son los suyos y que puedas jugar con ellos.

Incluso si tu eres el unico usuario en un sistema de escritorio normal, los permisos de archivos ayudan a mantener sus archivos importantes a salvo, tanto de los usuarios remoto y de su propio uso.

Propiedad del archivo

Cada archivo del sistema Linux, incluyendo directorios, es propiedad de un usuario específico y de grupo. Por lo tanto los permisos de archivo se definen por separado para usuarios, grupos y otros.

Usuario: El nombre de usuario de la persona que posee el archivo. El usuario que crea el archivo se convertirá por defecto en su propietario.

Grupo: El grupo de usuarios al que pertenece el archivo. Todos los usuarios que pertenecen al grupo tendran los mismos permisos de acceso al archivo. 

Otros: Un usuario que no es el propietario del archivo y no pertenece al mismo grupo en el archivo. En otras palabras, si se establece un permiso para la categoría "otros", afectara a los demás de forma predeterminada.

Por esta razón, las personas a menudo hablan acerca de la configuración del "mundo" bit de permiso cuando quieren decir establecer los permisos para los "otros".

Descripción de los permisos del archivos

Hay tres tipos de permisos en Linux: lectura, escritura y ejecutar. Estos permisos se definen por separado para el propietario del archivo, el grupo y el resto de usuarios.

Permiso de lectura: En un archivo normal, el bit de permiso de lectura significa que el archivo se puede abrir y leer. En un directorio, el permiso de lectura significa que usted puede listar el contenido del directorio.

Permiso de escritura: En un archivo normal, esto significa que usted puede modificar/escribir nuevos datos en el archivo. En el caso de un directorio, el permiso de escritura significa que puede agregar, eliminar y cambiar el nombre de los archivos en el directorio. Esto significa que si un fichero tiene el bit de permiso de escritura, se le permite modificar el contenido del archivo también cambiar el nombre o eliminar el archivo.

Permiso de ejecución: En el caso de un archivo normal, esto significa que puede ejecutar el archivo como un programa o un script de shell. En un directorio, el permiso de ejecución le permite acceder a los archivos en el directorio y entrar en él, con el cd de comando. Sin embargo, tenga en cuenta que aunque el bit de ejecución le permite entrar en el directorio, no se les permite mostrar su contenido, a menos que usted también tiene los permisos de lectura a este directorio.

Cómo ver los permisos de archivos

Tu puedes ver los permisos de acceso de un directorio realizando el listado largo de directorio con el comando #ls -l.

root@Jack:~# ls -l

drwxr-xr-xr 2 debian linux 4096 ene 15 20:10 certificados
-rw-r----- 1 debian linux 4096 feb 12 2006 ssh.txt
-rwxr-xr-x 1 debian linux 4096 mar 8 19:06  synaptic.sh
drwx------ 2 debian linux 4096 oct 17 21:15 Desktop
drwx------ 2 debian linux 4096 oct 17 21:00 Downloads


¿Qué significa la salida del comando ls -l?
La primera columna muestra el tipo de archivo/directorio y los permisos.
La segunda columna muestra el número de enlaces (entradas de directorio que se refieren al archivo).
La tercera columna muestra el propietario del archivo.
La cuarto columna muestra al grupo que le pertenece el archivo.
Las otras columnas muestran el tamaño del archivo en bytes, fecha, hora de la última modificación y el nombre del archivo.

La primera columna esta organizada en cuatro grupos separados, aunque ciertamente no parece muy organizado.

El primer grupo consta de un solo carácter, y muestra el tipo de archivo.


símbolo    

atributo  

ddirectorio
-archivo
lenlace simbolico
ssocket de dominio Unix
pcanalización con nombre
devicec personaje archivo
barchivo de dispositivo de bloques

Los siguientes nueve caracteres muestran los permisos del archivo, divididos en tres grupos, cada uno compuesto por tres. El primer grupo de tres caracteres muestra la lectura, escritura y ejecución para el  propietario del archivo. El grupo siguiente se muestra la lectura, escritura y ejecución para el grupo del archivo. Del mismo modo, el último grupo de tres caracteres muestra los permisos para el grupo otro. En cada grupo, el primer carácter es el permiso de lectura, el segundo permiso de escritura, y el tercero, el permiso de ejecución.

Los personajes son bastante fáciles de recordar.

símbolo    

permiso   

r leer
wescritura
x ejecucion
- ninguno

¿Qué significa esto en la práctica? Vamos a echar un ejemplo. Recuerde que la lista de directorios imaginario que hicimos al principio? La salida se veía así:


drwxr-xr-x 2 debian linux 4096 ene 15 20:10 certificados
-rw-r----- 1 debian linux 4096 feb 12 2006 ssh.txt

Como ya hemos observado en la primera linea, dir es un directorio, porque la primera columna se inicia con una d . El propietario de este directorio es usuario debian y el propietario del grupo es linux. Los primeros tres caracteres, rwx , indican que debian es propietario del directorio, en este caso tiene acceso total al directorio. El usuario debian es capaz de acceder, ver y modificar los archivos de ese directorio. Los siguientes tres caracteres, rx , indican que todos los usuarios que pertenecen al grupo de linux tienen permiso  de lectura y ejecución para el directorio, sin embargo debido a que no tiene permisos de escritura, no pueden realizar ningún cambio en el contenido del directorio. Finalmente, los últimos tres caracteres x  indican que todos los usuarios que no son debian o  los que no pertenecen a grupos de linux tienen permisos de ejecución en el directorio.

continuemos con la segunda linea, esta inicia con un - , este es un archivo, propiedad del usuario debian y grupos linux, al igual que el directorio en nuestro ejemplo. Los primeros tres caracteres rw- , indican que el propietario puede leer y editar el archivo. Con los siguientes tres caracteres, r-- , los usuarios que pertenecen al grupo de linux nada mas puede leer el archivo, estos no pueden modificar o ejecutarlo. Los últimos tres caracteres, --- , indican nadie más tiene acceso al archivo.

Cómo establecer permiso a los archivos




Con el comando chmod se puede establecer permisos a los archivos/directorio. Tanto el usuario root como el propietario del archivo puede establecer permisos de archivo

Hay dos formas de establecer permiso:
simbólicos y numéricos   

Modo simbólico

símbolo  

atributo

uusuario
ggrupo
ootros
Atoda la serie
+añadir permiso
-eliminar permiso
=acabar con los permisos
anteriores y añadir uno nuevo

Miremos un par de ejemplos, tenemos un archivo llamado test.txt y este tiene permiso de acceso para todos los grupos (-rwxrwxrwx).

Eliminaremos todos los permisos, pero agregaremos permisos de lectura para todo el mundo:
#chmod a=r test.txt
El resultado sera r--r--r--

Agregar permiso de ejecución para el grupo:
#chmod g+x test.txt
El archivo quedara r--r-xr--

Añadir permiso de escritura y ejecutar para el propietario del archivo:
#chmod u+wx test.txt
Los permisos del archivo se observaran asi rwxr-xr--

Eliminar permiso de ejecución para el propietario y el grupo:
#chmod ug-x test.txt
Ahora, los permisos son rw-r--r--

Modo numérico

En el modo numérico los permisos están representado de tres dígitos octal.

numero  

atributo

4read (r)
2escritura (w)
1ejecucion (x)
0sin permiso (-)

Para obtener los bits de permisos que desea, se suman los números en consecuencia.
Por ejemplo:

atributo

numero

total

rwx4+2+17
r-x4+15
rw-4+26

Para establecer permisos para el propietario, grupo y otros, se necesita un número de tres dígitos que representa los permisos de todos estos grupos.

ejemplos:
#chmod 755 test.txt
Los permisos del  archivo test.txt quedara rwxr-xr-x . El propietario tiene completo todo los permisos (7 = 4 +2 +1), el grupo y el otro tendran permiso de lectura y ejecutara (5 = 4 +1).


#chmod 640 test.txt
En este caso el archivo test.txt tendra el permiso de rw-r-----. El propietario podra leer y escribir (6 = 4 +2), el grupo leera (4), y los otros no tendran ningún permiso de acceso (0).

El modo numérico no puede ser tan sencillo como el modo simbólico, pero con el modo numérico puede ser mas rapida y eficaz para establecer permiso.

Comando chown, cambia el propietario de un archivo

En linux se puede cambiar el propietario y el grupo de un archivo o un directorio con el comando chown. Tenga en cuenta que nada mas se puede realizar esto solo si es usuario root o el propietario del archivo.

Establecer el propietario del archivo:
#chown debian file.txt
El nuevo propietario del archivo llamado file.txt será el usuario debian. El propietario del archivo del grupo no va a cambiar.

También puedes establecer un grupo al mismo tiempo. Si el nombre del usuario es seguida de dos puntos y un nombre de grupo, el grupo del archivo se cambiará también.
#chown debian:linux file.txt
El archivo file.txt tendra como nuevo propietario el usuario debian y el grupo linux .


Para cambiar el propietario de un directorio y todos los archivos de ese directorio, debes contar con la -R opción:
#chown -R debian Descargas
R significa recursivo y este comando recursivao puede cambiar la propiedad de los directorios y sus contenidos. Después de emitir este comando de ejemplo, el usuario debian será el propietario del directorio Descargas, así como todos los archivos de ese directorio.

Agregando la opcion v mostrara de forma detalla los cambios efectuados:

#chown -v debian Descargas
changed ownership of 'Descargas' to debian

El modo detallado es especialmente útil si cambia la propiedad de varios archivos a la vez. Por ejemplo, esto podría suceder cuando se hace de forma recursiva:

$ chown -Rv debian Descargas
changed ownership of 'Descargas/' to debian
changed ownership of 'Descargas/skype' to debian
changed ownership of 'Descargas/ssh' to udebian

Como se observa con este comando chown -Rv se detalla lo que le hizo a cada archivo.

Comando chgrp, cambia el grupo propietario de un archivo

Además de chown , también puede utilizar el comando chgrp para cambiar el grupo de un archivo o un directorio. Una vez mas se le recuerda que para realizar el cambio usted deber ser el usuario root o el propietario del archivo.

El comando chgrp funciona casi de la misma manera como chown, pero este cambia el grupo del archivo.
$ chgrp linux Descargas
Después de ejecutar este comando el directorio Descargas sera propiedad de un grupo de usuarios linux . Aunque el grupo del archivo ha cambiado a linux , el propietario del archivo continuara siendo el mismo.

Las opciones de utilizar chgrp es lo mismo que usar chown . Así, por ejemplo el -R y -v funcionara de las misma manera que chown.

$ chgrp -Rv linux Descargas
changed group of 'Descargas/' to linux
changed group of 'Descargas/skype' to linux

changed group of 'Descargas/ssh' to linux




domingo, 20 de enero de 2013

Instalando servidor SSH

Un servidor SSH es un programa de software que utiliza el protocolo Secure Shell para aceptar conexiones desde equipos remotos. Igualmente Telnet y FTP son protocolos bien conocidos pero estos envían datos en formato de texto plano, lo cual puede ser capturado por alguien que usa otro sistema de la misma red, incluyendo Internet. Mientra los datos transferidos usando la herramientas SSH estan cifrada, por lo que es seguro. El conjunto de herramientas SSH incluye ssh para conectarse con seguridad a un sistema remoto y ejecutar comandos remotos..

Instalación

root@linux# aptitude install openssh-server openssh-client

Configuración

Todas las configuraciones del servidor ssh se encuentran en el archivo /etc/ssh/sshd_config.
Para configurar el servidor debe indicarse las direcciones donde el servicio debe responder. En este caso serán conexiones ligadas a la dirección 192.168.1.100, a través del puerto 22 y utilizando la versión 2 del protocolo ssh:
/etc/ssh/sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
ListenAddress 192.168.1.100
Protocol 2

#[...]
Por seguridad, se debe desactivar el login como root. on esta configuración, para adquirir los privilegios del root, se debe hacer un login usuario normal y, después, adquirir los privilegios de root. De este modo, prevenimos que el password del root sea objeto de un ataque.
/etc/ssh/sshd_config
#[...]

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

#[...]
También se debe verificar que no sean permitidos los logins con contraseñas vacías:
/etc/ssh/sshd_config
#[...]

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

#[...]
Reiniciar el servicio:
root@linux# /etc/init.d/ssh restart

Verificación

Clientes Linux

Debe ser posible establecer una conexión ssh a la dirección 192.168.1.100. La primera vez que la conexión se efectúe, ésta debe ser confirmada, porque el servidor no está registrado en la lista de los sistemas conocidos por el cliente.


fribeiro@laptop:~$ ssh 192.168.1.100
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
RSA key fingerprint is ee:16:b0:c9:1b:ef:b4:64:e1:86:80:f4:36:9f:08:03.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (RSA) to the list of known hosts.
fribeiro@192.168.1.100's password:
Linux server 2.6.32-5-amd64 #1 SMP Fri Oct 15 00:56:30 UTC 2010 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law. 
 
 
fribeiro@linux:~$ logout
Connection to 192.168.1.100 closed.
fribeiro@laptop:~$
Las conexiones con el login root no serán aceptadas:
fribeiro@laptop:~$ ssh -l root 192.168.1.100
root@192.168.1.100's password:
Permission denied, please try again.
root@192.168.1.100's password:
Permission denied, please try again.
root@192.168.1.100's password:
Permission denied (publickey,password).

 

 

Clientes Windows

El acceso a partir de clientes Windows es posible con un programa emulador del terminal que soporte ssh, como Putty:

 

 

Obtener privilegios de root

Como el login como root está desactivado, la manera de obtener privilegios de root en una conexión ssh es a través de un usuario común que escala privilegios con el comando su:
fribeiro@laptop:~$ ssh 192.168.1.100
fribeiro@192.168.1.100's password:
Linux server 2.6.32-5-amd64 #1 SMP Fri Oct 15 00:56:30 UTC 2010 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Oct 27 11:01:21 2010 from laptop.home.lan
fribeiro@linux:~$ su - root
Password:
root@linux:~#
 
Favor comentar. 

Cambiar IP en Linux desde Consola


Nuestro objetivo es configurar la interfaz de red eth0 con una dirección IP estática 192.168.1.100. También es necesario indicar la dirección del dispositivo de acceso a Internet, el gateway (192.168.1.1). En una configuración casera, este será la dirección estática del router ADSL.

Configuración

Les mostrare dos formas de como configurar la IP en la consola linux


Primeramente lo haremos editando los archivos de configuracion /etc/network/interfaces y /etc/resolv.conf




La configuración de las interfaces de red está guardada en el archivo /etc/network/interfaces:

 /etc/network/interfaces
 root@server:~# vi /etc/network/interfaces
# This file describes the network interfaces available on your system
 # and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# allow-hotplug eth0
# iface eth0 inet dhcp

# Static IP address
auto eth0
iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1



También es necesario indicar la dirección del servidor DNS. En esta configuración, el servidor DNS funciona en el router/modem ADSL, por lo que el parámetro para nameserver debe tener el valor 192.168.1.1, en el archivo/etc/resolv.conf:
/etc/resolv.conf
root@server:~# vi /etc/resolv.conf
domain localdomain
search localdomain
nameserver 192.168.1.1



Segunda forma de configurar la IP en la consola linux seria de la siguente manera:

Se configura la IP con el comando ifconfig:

root@server:~# ifconfig eth0 192.168.1.100 netmask 255.255.255.0

A continuacion configuramos el Gateway:

root@server:~# route add default gw 192.168.1.1

y como ultimo paso agregamos el DNS al resolv.conf
root@server:~# echo nameserver 192.168.1.1 > /etc/resolv.conf

   

 Reiniciamos la interfaz de red para activar la nueva configuración:

root@server:~# ifdown eth0
root@server:~# ifup eth0
dependiendo del linux lo puedes hacer de las siguiente manera
root@server:~# /etc/init.d/network restart
o 
 root@server:~# service network restart

Listo ya tenemos nueva IP.


Verificación la nueva IP

El comando ifconfig suministra información detallada sobre la configuración de las interfaces de red. La configuración de la interfaz eth0 debe exhibir, los parámetros previamente definidos:
 
root@server:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:84:4c:b2
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe84:4cb2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5657 (5.5 KiB)  TX bytes:9091 (8.8 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)





También, debe ser posible contactar a servidores en la Internet:

root@server:~# ping -c3 www.google.com
PING www.debian.org (215.10.19.5) 56(84) bytes of data.
64 bytes from google.com (215.10.19.5): icmp_seq=1 ttl=43 time=188 ms
64 bytes from google.com (215.10.19.5): icmp_seq=2 ttl=43 time=190 ms
64 bytes from google.com (215.10.19.5): icmp_seq=3 ttl=43 time=185 ms

--- www.debian.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 185.808/188.217/190.108/1.793 ms

Favor dejar su comentario.

Programar tareas en Linux usando crontab


Linux tiene un gran programa llamado cron. Esto permite que las tareas que se ejecutan automáticamente en segundo plano a intervalos regulares. También puede usarlo para crear automáticamente copias de seguridad, sincronizar archivos, programar actualizaciones y mucho más. Bienvenido al maravilloso mundo de crontab. Editando crontab!!
 .

Crontab

El crontab (cron deriva de Cronos, en griego que significa "tiempo") de comandos, que se encuentra en sistemas operativos Unix, se utiliza para programar la ejecución de comandos de forma periódica.
Para ver los crontabs que se están ejecutando actualmente en su sistema, puede abrir un terminal y ejecutar:


crontab -l
Para editar la lista de cronjobs puede ejecutar:


crontab -e 

Se abre con el editor por defecto el podría ser vi, nano o pico. Para cambiar el editor de crontab por defecto es necesario exportar la variable de ambiente EDITOR:


#su
passwd: 
#export EDITOR="nano"
          o
#export EDITOR="vi"

Con el comando anterior cambiamos el editor de crontab, nuevamente volvermos agregar tareas en crontab, se guarde y sale del editor. Los cronjobs se escriben en el siguiente formato:




* * * * * /bin/execute/this/script.sh 



Como puedes ver hay 5 estrellas. Las estrellas representan las diferentes partes de fecha en el siguiente orden:
minutos: (de 0 a 59)
horas: (de 0 a 23)
día del mes: (del 1 al 31)
mes: (de 1 a 12)
días de semana: (de 0 a 6) (0 = domingo)

Ejecutar cada minuto

Si deja el asterisco significa cada minuto. Tal vez es un poco confuso. Vamos a usar el ejemplo siguiente:




* * * * * /home/usuario/script.sh 
Todos ellos son todavía asteriscos! Así que esto significa ejecutar /home/usuario/script.sh:
cada minuto
de cada hora
de cada día del mes
de cada mes
y todos los días de la semana.

En resumen: Este script se ejecuta cada minuto. Sin excepción.

Ejecutar cada Viernes a las 1 AM

Así que si desea programar la secuencia de comandos para ejecutar todos los viernes a la 1AM, necesitaríamos el cronjob siguiente:




0 1 * * 5 /home/usuario/script.sh 

¿Lo entiendes? Esta tarea se ejecutara cuando el reloj del sistema marque:
minuto: 0
de hora: 1
de días del mes: * (todos los días del mes)
del mes: * (cada mes)
y día de la semana: 5 (= Viernes)


Ejecutar los días laborables a las 1 a.m.

Si queremos programar una tarea en el crontab que se ejecute de lunes a viernes y a las 1 am, necesitaríamos editar el siguiente cronjob:




0 1 * * 1-5 /home/usuario/script.sh 

Lo entiendes? La Tarea está siendo ejecutada cuando el reloj del sistema marca:
el minuto: 0
de hora: 1
de días del mes: * (todos los días del mes)
del mes: * (cada mes)
y día de la semana: 1-5 (= lunes hasta viernes)


Ejecutar una tarea pasado 10 min después de cada hora y el día 1 de cada mes





10 * 1 * * /home/usuario/script.sh 
Trucos en el crontab

¿Qué pasa si te gustaría ejecutar algo cada 10 minutos? Así que usted puede hacer esto:




0,10,20,30,40,50 * * * * /home/usuario/script.sh 

Pero crontab le permite hacer esto también:




*/10 * * * * /home/usuario/script.sh 
Palabras especiales en crontab

En crontab también se puede usar palabras clave en lugar de número:

  • @reboot       Ejecutar una vez en el arranque
  • @yearly        Ejecutar anual una vez al año        "0 0 1 1 *"
  • @annually     Lo mismo que (@yearl)
  • @monthly     Ejecutar una vez al mes                "0 0 1 * *"
  • @weekly      Ejecutar una vez por semana        "0 0 * * 0"
  • @daily          Ejecutar una vez al dia                 "0 0 * * *"
  • @midnight    Lo mismo de (@daily)
  • @hourly       Ejecutar una vez a la hora             "0 * * * *"

Deje el resto de los campos vacíos para que pueda ser válida, ejemplo:



@daily /home/usuario/script.sh 


Almacenamiento de la salida de crontab

Cron puede guarda la salida de /home/usuario/script.sh en el buzón del usuario (root en este caso). Pero es más bonito si la salida se guarda en un archivo de registro separado. He aquí cómo:




*/10 * * * * /home/usuario/script.sh >> /var/log/script_output.log 2>&1   

Linux puede informar acerca de los diferentes niveles. No hay salida estándar (stdout) y error estándar (stderr). STDOUT está marcado 1, STDERR se marca 2. Así que la siguiente declaración le dice a Linux para almacenar STDERR en STDOUT, así, la creación de un flujo de datos de los mensajes y errores:




2>&1  

Ahora que tenemos un flujo de salida, se puede almacenar en un archivo.
Dónde:
 > sobrescribirá el archivo.
 >> anexará al expediente.
En este caso nos gustaría anexar:




>> /var/log/script_output.lo 



Enviar por correo la salida de crontab

Cron guarda la salida en el buzón del usuario (root en este caso) del sistema local, pero también se puede configurar para reenviar todo el crontab a una dirección de correo electrónico:



MAILTO = "yourname@yourdomain.com"   


Enviar por correo la salida de crontab de un solo cronjob

Si prefiere recibir la salida de una sola tarea programada en su correo, asegúrese de que el paquete está instalado:



Instalar msmtp, ver link
apt-get install msmtp ca-certificates 
Luego de instalado cambiar el cronjob así:



*/10 * * * * /home/usuario/script.sh 2>&1 | mutt -s "Cronjob ouput" yourname@yourdomain.com  
o 

*/10 * * * * mutt -s "prueba desde la consola" yourname@yourdomain.com </var/log/auth.log

Enviar la salida de crontab a null

Eso es fácil:


*/10 * * * *  /home/usuario/script.sh > /dev/null 2>&1  
/dev/null es un archivo especial que descarta todos los datos escritos en ella.


Deshabilitar Crontab

Para borrar todas las tareas en cron solo necesita aplicar este comando:
Crontab -r 

Espero que les sirve estas informacion.