Sunday 3 May 2015

Consejos y trucos, artículos básicos sobre configuraciones que ayudan a un mejor desempeño de nuestros SO's. Cada proceso ha sido personalmente comprobado.





En esta oportunidad  les traigo la continuación de la serie de Blogs en los que aprenderemos acerca de los maravillosos y geniales comandos Linux.

El cajón de los comandos Linux es una guía de referencia rápida para todos los usuarios Linux que desean aprender los comandos de este gran SO. Los comandos se dividen en 15 categorías lo cual nos permite tener un mayor entendimiento acerca de que comando utilizar en una específica situación. El agradecimiento total al creador de esta guía +Bobbin Zachariah .

Esta guía puede ser utilizada ya sea para usuarios nuevos o avanzados, proveyendo el mejor esfuerzo para dar a conocer los comandos Linux más relevantes. 

Así que empecemos con la 2ª parte de los comandos referentes al Sistema.



$ last reboot

Si trabajamos como administradores de servidores, debemos entender que tenemos que proteger dicho servidor. No solamente de afuera sino también protegerlo de adentro. Linux trae por defecto incorporado un comando para ver el último usuario en el sistema dentro de tu servidor.
El comando es "last". Este comando es muy útil para pistas de auditoria. Comencemos a ver que puede hacer "last" por nosotros.

¿Cuál es la función del comando "last"?
"last" muestra una lista de todos los usuarios dentro y fuera del sistema de /var/log/wtmp  desde que el archivo fue creado. Este archivo es binario el cual no puede ser visto por editores de texto tales como Vim, Emacs o algún otro. Este truco es muy inteligente porque los usuarios o super usuarios no pueden modificar el archivo a su antojo.
"last" te da información del nombre de todos los usuarios dentro del sistema, su tty, dirección IP (si el usuario esta haciendo una conexión remota) hora y fecha, y el tiempo que el usuario ha estado dentro del sistema.

¿Cómo corremos "last"?
Simplemente necesitas escribir "last" en la consola. Veamos:


Y he aquí como leemos la información de "last".
- En la primera columna nos dice quienes son los usuarios.
- La segunda columna nos da información acerca del usuario conectado.
* pts/0 (pseudo terminal) significa que el usuario se conecta remotamente, tales como SSH o TELNET.
* tty (teletypewriter) significa que el usuario se conecta directamente a la terminal o computadora local.
* El estado de la actividad de las excepciones de reinicio se mostrará al reinicializar el sistema.
- La tercera columna muestra de donde proviene el usuario. Si el usuario se conecta de un ordenador remoto veremos un "hostname" o una dirección IP, si vemos :0.0 o nada, significa que el usuario esta conectado en una terminal local. En la excepción para la actividad del reinicio la versión del kernel se mostrara como el estatus.
- Las columnas que quedan muestran cuando ha sucedido la actividad. Los números en los corchetes nos dicen cuantas horas y minutos ha durado la conexión.

Algunos ejemplos del comando "last" en operaciones del día a día.


Limitando el número de líneas mostradas.

Cuando tenemos varias líneas que mostrar, podemos limitar el número que nosotros queremos ver.
Usamos el parámetro -n para hacerlo.

El parámetro -n hará que el último comando muestre 3 líneas comenzando de la hora actual hacia atrás.

Para no mostrar el nombre host.

Usamos el parámetro -R para hacerlo, aquí un ejemplo:

Como podemos ver ahora no hay información acerca de la dirección IP o nombre host.

Mostrar el nombre host en la ultima columna.

Para hacer esto usamos el parámetro -a
  
Ahora la información del nombre host tal como 192.152.6.1 será puesta en la última columna.

Imprimir entradas y salidas, hora y fechas completamente.

Podemos usar el parámetro -F para esto. He aquí una muestra.


Imprimir el nombre de un usuario en especifico.

Si queremos rastrear a un especifico usuario, puedes hacerlo, solamente ponemos el nombre del usuario después del comando last.


O si queremos saber cuando un reinicio ha sido hecho, también podemos solicitarlo con:


Imprimir un especifico tty /pts.

Simplemente poniendo el nombre tty o pts después del comando last un ejemplo puede ser:



Cuando vemos el valor "down", tal como se muestra en la segunda línea de la figura aquí arriba significa que el usuario entro al sistema a una especifica hora hasta que el sistema fue apagado o reiniciado.

Usar otro archivo que no sea   /var/log/wtmp

Por defecto, el  comando "last" analizará información de /var/log/wtmp. Si desea que el  comando "last" de análisis de otro archivo, pueda utilizar el parámetro -f. Por ejemplo, es posible rotar el registro después de cierta condición. Digamos que el archivo anterior se nombra /var/log/wtmp.1.  
A continuación, el comando "last" será algo así:


Mostrar los cambios de los niveles en ejecución.

Esta el parámetro -x por si quisieras echar un vistazo a los cambios de los niveles que están corriendo. He aquí un ejemplo:

Se puede ver que hay dos entradas de niveles en ejecución.  "Runlevel" el cual tiene la entrada a  lvl 3  significa que el sistema se está ejecutando exclusivamente en modo consola, es decir no hay "X Windows" o GUI activos. Mientras tanto, cuando el sistema está apagado, Linux  correra a nivel  0. Eso es el porque el comando "last" te muestra la entrada to lvl 0.

Ver inicios de sesión fallidos.

Mientras que el comando "last" registra los inicios de sesión con éxito,  entonces el comando lastb imprime los intentos de inicios de sesión erróneos.
Debe tener acceso root para ejecutar  el comando lastb
He aquí un ejemplo de correr el comando lastb. Lastb analizará información de /var/log/btmp. 


Rotar los registros de entrada.

Ya que /var/log/wtmp graba cada actividad de entrada al sistema, el archivo crecerá rápidamente; por defecto, Linux rotara /var/log/wtmp cada mes. Los detalles de la actividad de rotación son puestos en el archivo /etc/logrotate.conf. Aquí un ejemplo del contenido que puede mostrar un archivo /etc/logrotate.conf:


Y para /var/log/btmp, aquí  la configuración por defecto de la actividad de rotación.


Esto ha sido todo en cuanto al uso del comando  last reboot . Para mas información referirse a man, help o info en la consola.



$ date

La fecha en el sistema operativo sólo puede ser considerado como una parte de tiempo. Especialmente en modo consola, nosotros generalmente no vemos la fecha como un algo importante; pero para el administrador, esta suposición es falsa¿Sabes que una fecha y hora errónea pueden hacerte que una aplicación no compile?

Por eso la  fecha y hora son importantes, esto es pues  la razón por la cual el Protocolo de tiempo de red es desarrollado. Empezemos a ver lo que el comando "date" puede hacer por ti.

Mostrando la fecha del sistema. 

Para mostrar la fecha del sistema, simplemente escribimos:


Formato de fecha.
La fecha viene en muchos formatos. Si no está satisfecho con el formato por defecto puedes cambiarlo. Te preguntaras: "¿Por qué tengo que cambiar el formato? La salida que trae por defecto es suficiente para mí ".
Sí. Eso es verdad. Pero cuando programas, la salida por defecto podría no requerir las necesidades del usuario. Así que aquí hay algunas salidas personalizadas.

Fecha y hora de salida en formato RFC 2822 


RFC 2822 tiene un formato como este: día, fecha-mes-año, hora: minuto: segundo, zona horaria.
Zona horaria +0700 es la misma que GMT +7
Por defecto la fecha está usando la zona horaria definida en /etc/localtime, los datos de zonas horarias válidos son definidos en   /usr/share/timezones.


Imprimir o poner coordenadas de tiempo universal.  

UTC de acuerdo a Wikipedia  significa:
Es el tiempo estándar primario por el cual se regulan relojes y horas en el mundo.
 Es uno de  los tantos que se acercan a los  sucesores  relacionados a GMT (Greenwich Mean Time), sin embargo GMT no es mas considerado preciso por la comunidad de científicos.

Para mostrar la fecha y la hora con formato UTC, utilizamos el parámetro -u


Usando opciones de formato.

Para personalizar el formato de tu fecha, utilizamos el simbolo más (+)



%D sigue el formato año/mes/día.

 Podemos también poner el nombre del día si lo queremos. He aquí algunos ejemplos:



Todavía hay un montón de opciones de formato disponibles. Solo escribe:
o

Para mostrar  sintaxis y  parámetros del comando "date".

Así que, básicamente, comando date interpretará todo signo de porcentaje (%) e imprimirá cualquier cosa dentro de unas comillas ("")
.


Establecer fecha y hora del sistema.

Generalmente queremos que la fecha y hora del sistema se ajuste automáticamente. Si por alguna razón deseamos cambiarlo manualmente, podemos utilizar este comando:

Esto pondrá la fecha y hora actual de tu sistema  en    de       2015  y :   :00 AM.  Ten en cuente que, debemos tener privilegios de super usuario para hacerlo. De lo contrario tendremos un mensaje de error como este:


Restablecer el tiempo.

Si necesitas resetear la fecha y hora del sistema a su estado original, hacemos lo siguiente:



Y  se establecerá la fecha y hora del sistema a la salida del comando hwclock.

Usando el comando date en un script.

¿Recuerdas cuando dijimos anteriormente el porque necesitamos cambiar la salida de fecha?
Una de las respuestas es que probablemente programes; veamos un ejemplo en un script bash
Lo guardamos y ejecutamos usando: 
Si encuentras algún error de permisos entonces escribes:

Usando la fecha en procedimientos de respaldo.

Otro ejemplo es cuando estamos usando la fecha a la hora de crear un respaldo

Esto comprimirá el folder /home/likhriss/Documents  dentro de un archivo con el nombre: backup 2015-05-02.tar.gz  localizado en folder /daily_backup.

Conclusión
El comando "date" puede ser visto sin importancia, pero las fechas juegan un papel muy importante. Usualmente si quieres tener mas detalle de como usar el comando "date" referirse a man, help o info en la consola.


$ cal

Además del comando "date" Linux también tiene el comando "cal" que nos muestra el calendario. "cal" simplemente nos muestra el calendario en muchas maneras, esta también el comando  ncal el cual tiene la misma función que "cal", empecemos.

Ejecutar cal

"cal" es un comando el cual viene incorporado en cada distribución Linux, para correr cal solo digitamos cal en nuestra terminal.



Mostrar el calendario de un año entero.
Para mostrar un año entero, ponemos el año que queremos después del comando "cal" o usamos el parámetro -y año.
Digamos que queremos ver el calendario del año 2010

o


Mostrar un mes en especifico.
Para llevar a cabo esta acción, podemos usar el parámetro -m nombre del mes.
He aquí un ejemplo:


Como puedes ver podemos poner el nombre del mes completo o simplemente una abreviatura de este.
Imprimir días julianos.
Estos julianos son el número de días transcurridos a partir del 1º de Enero, para que nos muestre el calendario bajo este formato usamos el parámetro -j



En el calendario juliano vemos que Diciembre 7 del 2013 es convertido al día 341 del año 2013.
Mostrar 3 meses del calendario.
Para hacer que nos muestre un formato de 3 meses el comando "cal", el anterior, mes en curso y siguiente mes; usamos el parámetro -3


Imprimir el número de meses después del mes actual.
Si necesitas hacerlo, usamos el parámetro -A

Mostrar el número de meses antes del mes corriendo.

Si necesitas hacerlo, usamos el parámetro -B


Imprimir el número de semanas.
Para mostrar un número de semana no podemos usar el comando cal, esta vez, usamos el comando ncal  

Ncal nos muestra una vista  en forma de retrato, los números de semana son mostrados abajo de cada mes.

Las semanas que comienzan con lunes.
Por defecto, las semanas empiezan con domingo si quieres empezar con lunes, podemos usar el parámetro -M, pero una vez más, este comando se aplica únicamente con ncal.



Mostrar códigos de países
 Para ver estos códigos en el calendario, usamos el parámetro -p. Este parámetro también aplica solo con el comando ncal. 


Conclusión
La diferencia entre cal y ncal son la vista de orientación y parámetros de cada uno; por ejemplo, el parámetro -w para mostrar el numero de semanas, no puede ser usado con el comando cal, obtendríamos  un mensaje de error como este:


Pero producen la misma función que es la de darnos información acerca del calendario.

Esto ha sido todo en cuanto al uso del comando  cal. Para mas información referirse a man, help o info en la consola.

Saludos especiales a tod@s espero este aporte pueda ser de su ayuda. Si les fue útil compartan y comente.