Para saber la versión exacta que tengo instalada, en este caso de Debian, hay que colocar uno de estos dos comandos.
1- Para saber solo la versión que tengo hacemos en la consola:
$ cat /etc/issue.net
2- También tenemos un comando que nos va a dar muchos más detalles
$ lsb_release -a
Conoce sobre tecnología de la información, soluciones Linux, configuración de servicios GNU/Linux, hacking ético y seguridad informática.
miércoles, 16 de diciembre de 2015
El comando ls
Quizás uno de los comandos de mayor utilización,
sirve para listar archivos.
Su sintaxis es la siguiente:
ls [opciones] [archivo...]
Si se ejecuta ls sin argumentos,
dará como resultado un listado de todos los archivos
(incluyendo directorios) del directorio donde el usuario
está posicionado. Sus opciones son:
- -a
- Lista todos los archivos, incluyendo aquellos que comienzan con un «.» [4]
- -d
- Lista el nombre del directorio en vez de los archivos contenidos en él.
- -l
- Lista los archivos con mucho más detalle, especificando para cada archivo sus permisos, el número de enlaces rígidos, el nombre del propietario, el grupo al que pertenece, el tamaño en bytes y la fecha de la última modificación.
- -r
- Invierte el orden de listado de los archivos.
- -s
- Muestra el tamaño de cada archivo en bloques de 1024 bytes a la izquierda del nombre.
- -h
- Muestra los tamaños de archivo en términos de kilobytes, megabytes, etc.
- -t
- Lista los archivos ordenados por el tiempo de modificación en vez de ordenarlos alfabéticamente.
- -A
- Lista todos los archivos excepto el «.» y el «..».
- -R
- Lista los contenidos de todos los directorios recursivamente.
- -S
- Ordena el listado por el tamaño de los archivos.
- --color[=cuándo]
-
Especifica si emplear color para distinguir los diferentes tipos
de archivos. El argumento cuándo
puede tener varios valores:
- none
- No usar colores. Esta opción es la predeterminada.
- auto
- Usar colores solamente cuando la salida estándar es una terminal.
- always
- Usar siempre colores. Si ls se usa con la opción --color sin especificar la opción de color, el resultado es el mismo que cuando se usa --color=always.
Ejemplo. Algunos ejemplos utilizando el
comando ls
Supónganse que se tiene un directorio /usr/local/papers donde se alojan los documentos de
un grupo de redactores de una revista, y se quiere saber
cuáles fueron los últimos documentos modificados y su
tamaño para su inclusión en el próximo
número. Para esto se puede ejecutar el comando ls de la siguiente forma:$ ls -lhtr /usr/local/papers
Como se puede observar, se le pasan 4 opciones al comando
ls, de tal manera que muestre un listado
extendido, ordenado por tiempos de modificación de forma
ascendente y que además muestre los tamaños de
archivo en forma más legible. Otra manera de ejecutar el
mismo comando es la siguiente:$ ls -l -h -t -r /usr/local/papers
martes, 17 de noviembre de 2015
Como cambiar la zona horaria en Linux desde una terminal
Cambiar la zona horaria de Linux desde una Terminal o línea de comandos es muy sencillo, bastan con ejecutar el comando "tzselect" y elegir nuestra zona horaria, por ejemplo supongamos que vivimos en Mexico y usamos la hora central, lo hacemos de la siguiente forma.
root@monitoreo:/etc/apache2# tzselect
Retorna un resultado como el siguiente.
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) coord - I want to use geographical coordinates.
12) TZ - I want to specify the time zone using the Posix TZ format.
Seleccionamos el número 2 que es Americas, luego el número 51 que es Venezuela y por último el número 1 que es el horario central.
Luego veremos una pantalla como la siguiente.
#? 2
Please select a country whose clocks agree with yours.
1) Anguilla 28) Haiti
2) Antigua & Barbuda 29) Honduras
3) Argentina 30) Jamaica
4) Aruba 31) Martinique
5) Bahamas 32) Mexico
6) Barbados 33) Montserrat
7) Belize 34) Nicaragua
8) Bolivia 35) Panama
9) Brazil 36) Paraguay
10) Canada 37) Peru
11) Caribbean Netherlands 38) Puerto Rico
12) Cayman Islands 39) St Barthelemy
13) Chile 40) St Kitts & Nevis
14) Colombia 41) St Lucia
15) Costa Rica 42) St Maarten (Dutch part)
16) Cuba 43) St Martin (French part)
17) Curacao 44) St Pierre & Miquelon
18) Dominica 45) St Vincent
19) Dominican Republic 46) Suriname
20) Ecuador 47) Trinidad & Tobago
21) El Salvador 48) Turks & Caicos Is
22) French Guiana 49) United States
23) Greenland 50) Uruguay
24) Grenada 51) Venezuela
25) Guadeloupe 52) Virgin Islands (UK)
26) Guatemala 53) Virgin Islands (US)
27) Guyana
#? 51
The following information has been given:
Venezuela
Therefore TZ='America/Caracas' will be used.
Local time is now: mar nov 17 14:07:08 VET 2015.
Universal Time is now: mar nov 17 18:37:08 UTC 2015.
Is the above information OK?
1) Yes
2) No
Si todo está correcto seleccionamos "1" y listo.
#? 1
You can make this change permanent for yourself by appending the line
TZ='America/Caracas'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Caracas
y en la proxima pantalla seleccionas Caracas
root@monitoreo:/etc/apache2# tzselect
Retorna un resultado como el siguiente.
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) coord - I want to use geographical coordinates.
12) TZ - I want to specify the time zone using the Posix TZ format.
Seleccionamos el número 2 que es Americas, luego el número 51 que es Venezuela y por último el número 1 que es el horario central.
Luego veremos una pantalla como la siguiente.
#? 2
Please select a country whose clocks agree with yours.
1) Anguilla 28) Haiti
2) Antigua & Barbuda 29) Honduras
3) Argentina 30) Jamaica
4) Aruba 31) Martinique
5) Bahamas 32) Mexico
6) Barbados 33) Montserrat
7) Belize 34) Nicaragua
8) Bolivia 35) Panama
9) Brazil 36) Paraguay
10) Canada 37) Peru
11) Caribbean Netherlands 38) Puerto Rico
12) Cayman Islands 39) St Barthelemy
13) Chile 40) St Kitts & Nevis
14) Colombia 41) St Lucia
15) Costa Rica 42) St Maarten (Dutch part)
16) Cuba 43) St Martin (French part)
17) Curacao 44) St Pierre & Miquelon
18) Dominica 45) St Vincent
19) Dominican Republic 46) Suriname
20) Ecuador 47) Trinidad & Tobago
21) El Salvador 48) Turks & Caicos Is
22) French Guiana 49) United States
23) Greenland 50) Uruguay
24) Grenada 51) Venezuela
25) Guadeloupe 52) Virgin Islands (UK)
26) Guatemala 53) Virgin Islands (US)
27) Guyana
#? 51
The following information has been given:
Venezuela
Therefore TZ='America/Caracas' will be used.
Local time is now: mar nov 17 14:07:08 VET 2015.
Universal Time is now: mar nov 17 18:37:08 UTC 2015.
Is the above information OK?
1) Yes
2) No
Si todo está correcto seleccionamos "1" y listo.
#? 1
You can make this change permanent for yourself by appending the line
TZ='America/Caracas'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Caracas
Ahora si queremos que este cambio se haga permanentemente entre reinicios de nuestra PC, agregamos la siguiente línea en nustro archivo .profile
TZ='America/Caracas'; export TZ
Otra forma de hacer lo mismo es con los siguientes comandos.
$ rm /etc/localtime
$ ln -s /usr/share/zoneinfo/America/Caracas /etc/localtime
Otra forma es colocando como root el siguiente comando
#dpkg-reconfigure tzdata
Una vez que colocas el comando seleccionas America
y en la proxima pantalla seleccionas Caracas
y por ultimo arrojara el siguiente texto
Current default time zone: 'America/Caracas'
Local time is now: Tue Nov 17 14:49:10 VET 2015.
Universal Time is now: Tue Nov 17 19:19:10 UTC 2015.
jueves, 12 de noviembre de 2015
Comprimir y descomprimir .gz, .tar.gz, y .zip por linea de comandos en Linux
Archivos .tar.gz:
Comprimir: tar -czvf empaquetado.tar.gz /carpeta/a/empaquetar/
Descomprimir: tar -xzvf archivo.tar.gz
Archivos .tar:
Empaquetar: tar -cvf paquete.tar /dir/a/comprimir/
Desempaquetar: tar -xvf paquete.tar
Archivos .gz:
Comprimir: gzip -9 index.php
Descomprimir: gzip -d index.php.gz
Archivos .zip:
Comprimir: zip archivo.zip carpeta
Descomprimir: unzip archivo.zip
Comprimir: tar -czvf empaquetado.tar.gz /carpeta/a/empaquetar/
Descomprimir: tar -xzvf archivo.tar.gz
Archivos .tar:
Empaquetar: tar -cvf paquete.tar /dir/a/comprimir/
Desempaquetar: tar -xvf paquete.tar
Archivos .gz:
Comprimir: gzip -9 index.php
Descomprimir: gzip -d index.php.gz
Archivos .zip:
Comprimir: zip archivo.zip carpeta
Descomprimir: unzip archivo.zip
Buscar archivos que contengan un texto en Linux
Para buscar archivos que contengan un cierto texto en Linux podemos utilizar el comando grep.
Su uso es muy sencillo. Basta con pasar como argumentos una cadena de texto a buscar (o una expresión regular) y el archivo o archivos en los que buscar.
grep “TODO” /home/zootropo/codigo/*.py
También podemos hacer que busque en todos los archivos contenidos en un cierto directorio, de forma recursiva, utilizando el flag -r:
grep -r “TODO” /home/zootropo/codigo/
El parámetro -l le indica que imprima los nombres de archivos en los que se encuentre el texto solicitado.
grep -lir "usemos linux" "/media/win/cosas"
grep -lir "usemos linux" *.pdf
El parámetro -l le indica que imprima los nombres de archivos en los que se encuentre el texto solicitado.
grep -lir "usemos linux" "/media/win/cosas"
grep -lir "usemos linux" *.pdf
viernes, 30 de octubre de 2015
15 Comando básicos para gestionar MySql
ALL PRIVILEGES: como mencionamos previamente esto permite a un usuario de MySQL acceder a todas las bases de datos asignadas en el sistema.
CREATE: permite crear nuevas tablas o bases de datos.
DROP: permite eliminar tablas o bases de datos.
DELETE: permite eliminar registros de tablas.
INSERT: permite insertar registros en tablas.
SELECT: permite leer registros en las tablas.
UPDATE: permite actualizar registros seleccionados en tablas.
GRANT OPTION: permite remover privilegios de usuarios.
1. INGRESO A MYSQL
--> mysql -u root -p
2. CREAR BASE DE DATOS
--> CREATE DATABASE db_encuesta_servicios;
3. CREAR USUARIO
--> CREATE USER usuarioencuesta IDENTIFIED BY 'encuesta';
Query OK, 0 rows affected (0.00 sec)
Nota: Para probar el nuevo usuario debes cerrar sesión escribiendo quit y volviendo a iniciar sesión con éste comando en la consola:
--> mysql -u [nombre de usuario]-p
4. ASIGNAR PRIVILEGIOS
--> GRANT ALL PRIVILEGES ON *.* TO 'usuarioencuesta'@'localhost' IDENTIFIED BY 'encuesta' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
Nota: Cada vez que tu actualizas o cambias permisos, asegúrate de refrescar los privilegios mediante FLUSH PRIVILEGES;
5. MOSTRAR LAS BASE DE DATOS
--> show databases;
6. MUESTRA LAS TABLAS DE UNA BASE DE DATOS LLAMADA MYSQL
--> SHOW FULL TABLES FROM mysql;
7. ELIMINAR BASE DE DATOS EN MYSQL
--> DROP DATABASE db_encuesta_servicios;
8. ELIMINAR USUARIO DE LA BASE DE DATOS
--> DROP USER usuarioencuesta;
9. CONECTAR BASE DE DATOS EN MYSQL
--> connect db_encuesta_servicios;
10. RESTAURA UNA BASE DE DATOS
--> mysql -u usuarioencuesta -pencuesta db_encuesta_servicios < db_encuesta_servicios.sql
11. RESPALDAR UNA BASE DE DATOS
---> set FECHA=`date '+%Y_%m_%d'`
---> echo $FECHA
---> mysqldump -h localhost -u mi_usuario -p base_datos > /home/usuario/backup/mi_base_$FECHA.sql
Ejemplo
---> mysqldump -h localhost -u usuarioencuesta -p db_encuesta_servicios > /home/usuario/backup/db_encuesta_servicios.sql
12. CAMBIAR CLAVE DE ROOT
---> mysqladmin -u root -pcaracas password 'monitoreo';
13. CONFIGURAR EL PASSWORD DE ROOT
Si hacemos una instalacion de MySQL, veremos que no reuqerira password para conectar, por tanto configuramos uno con el siguiente comando:
---> mysqladmin -u root password PASSWORD_ELEGIDO
14. CHEQUEAR QUE EL SERVIDOR MYSQL ESTA ACTIVO
Para constatar esto, ejecutamos lo suiguiente.
---> mysqladmin -u root -p ping
Enter password:
mysqld is alive
15.1 - /etc/init.d/mysql stop
15.2 - mysqld_safe --skip-grant-tables &
15.3 - mysql -u root
15.4 - mysql> use mysql;
15.5 - mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where 15.6 - User='root';
15.7 - mysql> flush privileges;
15.8 - mysql> quit
15.9 - /etc/init.d/mysql stop
15.10 - /etc/init.d/mysql start
15.11 - mysql -u root -p
12. CAMBIAR CLAVE DE ROOT
---> mysqladmin -u root -pcaracas password 'monitoreo';
13. CONFIGURAR EL PASSWORD DE ROOT
Si hacemos una instalacion de MySQL, veremos que no reuqerira password para conectar, por tanto configuramos uno con el siguiente comando:
---> mysqladmin -u root password PASSWORD_ELEGIDO
14. CHEQUEAR QUE EL SERVIDOR MYSQL ESTA ACTIVO
Para constatar esto, ejecutamos lo suiguiente.
---> mysqladmin -u root -p ping
Enter password:
mysqld is alive
15. PASSWORD RECOVERY
15.1 - /etc/init.d/mysql stop
15.2 - mysqld_safe --skip-grant-tables &
15.3 - mysql -u root
15.4 - mysql> use mysql;
15.5 - mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where 15.6 - User='root';
15.7 - mysql> flush privileges;
15.8 - mysql> quit
15.9 - /etc/init.d/mysql stop
15.10 - /etc/init.d/mysql start
15.11 - mysql -u root -p
martes, 27 de octubre de 2015
Comandos de administración básica de LVM (Logical Volume Group)
pvcreate [device] [nombre]
ejemplo:
pvcreate /dev/dm-4 documentos
Para ver los volumenes fisicos creados
pvdisplay
Crear un grupo de volúmenes
vgcreate [nombre] [device:mapper]
ejemplo:
vgcreate docs /dev/dm-4
Ver los grupos de volumenes creados
vgdisplay
Crear un volumen lógico
lvcreate -L [size] -n [nombre] [volume:group]
ejemplo:
vgcreate docs /dev/dm-4
Determinar el espacio libre (-l) de un volume group
correo:~# vgs -o +vg_free_count,vg_extent_count
ejemplo:
correo:~# lvcreate -l255999 -n buzones CORREO
Logical volume "buzones" created
Ver los Volúmenes lógicos creados
lvdisplay
Aplicarle un Filesystem a un volumen lógico
Darle un formato a ese volumen
mkfs -t [filesystem] [logical:volume]
Comandos de administración básica de LVM (Logical Volume Group)
y montar el dispositivo:
mount -t [filesystem] [logical:volume] [mount:point] -o [options]
ejemplo:
• usando XFS:
mkfs.xfs -f -d agcount=32 -b size=4096 -i size=1024 -L buzones /dev/CORREO/buzones
NOTA: Debian no soporta clusters -b > 4096 bytes (4kb)
• usando EXT3:
mkfs.ext3 -I 1024 -b 4096 -m 1 -L mppefpdc -O dir_index /dev/CORREO/buzones
jueves, 22 de octubre de 2015
Comando apt-get
Siguiendo mi intención de acercar la terminal (esa cosa tan rara) a los nuevos usuarios, vamos a hablar del comando "
apt-get
".
apt-get
es la herramienta que utiliza Debian y sus
derivadas (Ubuntu incluida), para gestionar los paquetes instalables
disponibles en los repositorios y aunque tenemos a nuestra disposición
herramientas gráficas que nos facilitan las cosas, nunca está de más
saber lo que podemos hacer con apt-get desde una terminal:
En Ubuntu, los comandos administrativos, como "apt-get", deben de ser ejecutados como superusuario, anteponiendo "sudo".
Uso:
sudo apt-get [opciones] orden [paquetes]Ejemplos:
sudo apt-get [opciones] install paquete1 paqquete2 ...[opciones] se puede utilizar o no (ver el apartado correspondiente).
sudo apt-get [opciones] remove paquete1 [paqquete2 ...
sudo apt-get [opciones] source paquete1 paquete2 ...
Comandos "apt-get":
1. Actualizar el listado de paquetes disponibles:
sudo apt-get update
2. Comprobar que todo ha ido bien tras la utilización de apt-get update:
sudo apt-get check
3. Instalar los programas deseados:
sudo apt-get install paquete
4. Reinstalar un programa:
sudo apt-get -reinstall install paquete
5. Actualizar solo los paquetes ya instalados que no necesitan, como dependencia, la instalación o desinstalación de otros paquetes:
sudo apt-get upgrade
6. Actualizar todos los paquetes del sistema, instalando o desinstalando los paquetes que sean necesarios para resolver las dependencias que pueda generar la actualización de algún paquete:
sudo apt-get dist-upgrade
7. Desinstalar un paquete:
sudo apt-get remove paquete
8. Desinstalar un paquete y elimina los archivos de configuración:
sudo apt-get remove --purge paquete
9. Resolver problemas con dependencias y paquetes rotos:
sudo apt-get -f install
Puede ser necesario reconfigurar dpkg con:sudo sudo dpkg --configure -a
10. Para limpiar los paquetes descargados e instalados:
sudo apt-get clean
11. Para limpiar los paquetes viejos que ya no se usan:
sudo apt-get autoclean
12. Para buscar un paquete determinado:
sudo apt-cache search paquete
13. Descargar archivos fuente:
sudo apt-get source paquete
14. Configurar las dependencias de construcción para paquetes fuente:
sudo apt-get build-dep paquete
15. Seguir las selecciones de dselect:
sudo apt-get dselect-upgrade
16. Para conocer que paquetes hay instalados:
sudo apt-show-versions (-u)
17. Obtener más información de un paquete específico:
sudo apt-cache show paquete
18. Más información aún:
sudo apt-cache showpkg paquete
19. Para saber de que paquete depende:
sudo apt-cache depends paquete
20. Para encontrar el nombre de un paquete desde un archivo:
sudo apt-file search archivo
21. Listar el contenido de un paquete:
sudo apt-file list paquete
22. Para mantener al día esta función:
sudo apt-file update
23. Para mantener el sistema limpio de bibliotecas inútiles:
sudo apt-get autoremove
24. Actualizar la caché de paquetes (/var/cache/apt/pkgcache.bin), crea un nuevo árbol de dependencias:
sudo apt-get check
25. Mostrar un resumen de las dependencias no satisfechas en la caché de paquetes:
sudo apt-cache unmet
26. Mostrar una lista de todo lo que tenemos instalado en el sistema:
sudo apt-cache pkgnames -generate
Opciones:
-s | Simula una acción. |
---|---|
-d | Sólo descarga. |
-y | No pregunta y asume que si a todo. |
-u | Muestra paquetes actualizados. |
-h | Muestra texto de ayuda. |
-q | Salida registrable - sin indicador de progreso. |
Sin salida, excepto si hay errores. | |
-f | Intenta continuar sí la comprobación de integridad falla (dependencias rotas). |
-m | Intenta continuar si los archivos no son localizables. |
-b | Construye el paquete fuente después de obtenerlo. |
-V | Muesta números de versión detallados. |
-c=? | Lee este archivo de configuración. |
-o=? | Establece una opción de configuración arbitraria. |
Comando "apt":
Actualización: A partir de Ubuntu 14.04, el gestor de paquetes apt ("Avanced Package Tool") tiene nuevas opciones. Ya no es necesario escribir "apt-get" y se puede utilizar simplemente "apt", (apt seguirá funcionando).
1. Buscar y mostrar los paquetes instalados por su nombre:
sudo apt list
2. Buscar en las descripciones de los paquetes:sudo apt search ...
3. Mostrar los detalles de un paquete:sudo apt show paquete
4. Actualizar la lista de paquetes disponibles:sudo apt update
5. Instalar un paquetessudo apt install paquete
6. Eliminar un paquetesudo apt remove paquete
7. Actualizar el sistema actualizando paquetessudo apt upgrade
8. Actualizar todo el sistema eliminando, instalando o actualizando paquetessudo apt full-upgrade
9. Editar la información de las fuentes de software ("sources.list") llamando a nano o vim.sudo apt edit-sources
viernes, 16 de octubre de 2015
Comandos para medir el trafico en la red
Para medir por proceso el trafico de la red que hay en Linux es nethogs, sencillo, hace lo que dice que hace, te muestra por aplicación qué uso de red se está haciendo, el ancho de banda consumido tanto de download como upload.
Para ejecutar hay que hacerlos con permisos de administrador e indicar qué interfaz vamos a chequear, ej: eth0, wlan0, etc.:
nethogs
# nethogs eth0
Instalación:
# ubuntu or debian (default repos)
$ sudo apt-get install nethogs
# fedora or centos (from epel)
$ sudo yum install nethogs -y
nload
Para medir el ancho de banda total hay muchas app: nload, también hay que ejecutarla como admin pero no hace falta indicar la interfaz, mide el total:
Instalación:
# ubuntu/debian
$ sudo apt-get install nload
# fedora or centos
$ yum install nload -y
ifstat
En los casos que quieran verlo tipo batch en vivo, muy útil para tener algo sencillo que nos muestre segundo a segundo en una listita, probé ifstat y es bastante útil:
# ubuntu/debian
$ sudo apt-get install ifstat
# fedora or centos
$ yum install ifstat -y
BMon
BMon (Bandwidth Monitor) es una herramienta similar a nload que muestra la carga de tráfico sobre todas las interfaces de red en el sistema. La salida también se compone de un gráfico y una sección con detalles del nivel de paquetes.
Instale BMon - Ubuntu, Debian y Fedora usuarios pueden instalar desde repositorios predeterminados. Los usuarios de CentOS necesitan repoforge configuración, ya que su no disponible en Epel.
# Ubuntu o debian
$ Sudo apt-get install BMon
# Fedora o centos (desde repoforge)
$ Sudo yum install BMon
BMon soporta muchas opciones y es capaz de producir informes en formato html. Compruebe la página de manual para más información
Tcptrack
Es similar a iftop, y utiliza la biblioteca PCAP para capturar paquetes y calcular varias estadísticas como el ancho de banda utilizado en cada conexión. También es compatible con los filtros PCAP estándar que pueden ser utilizados para supervisar las conexiones específicas.
Instale Tcptrack - Ubuntu, Debian y Fedora tienen en repos por defecto. Los usuarios de CentOS necesitan obtener de RepoForge ya que no está disponible en Epel tampoco.
# Ubuntu, debian
$ Sudo apt-get install Tcptrack
# Fedora, CentOS (desde repositorio repoforge)
$ Sudo yum install Tcptrack
vnStat
VnStat es poco diferente de la mayoría de las otras herramientas. En realidad, tiene un servicio de fondo / daemon y mantiene la grabación del tamaño de transferencia de datos todo el tiempo. A continuación puede ser utilizado para generar un informe de la historia de uso de la red.
$ service vnstat status
* vnStat daemon is running
Correr vnStat sin ninguna opción simplemente mostrar la cantidad total de la transferencia de datos que tuvo lugar desde la fecha en que el demonio está en ejecución.
Para controlar el uso del ancho de banda en tiempo real, utilice la opción '-l' (modo en directo). A continuación, se mostraría el ancho de banda total utilizada por los datos entrantes y salientes, pero de una manera muy precisa sin ningún detalle acerca de las conexiones internas o procesos de acogida.
VnStat es más como una herramienta para obtener informes históricos de cuánto ancho de banda se utiliza todos los días o en el último mes. No es estrictamente una herramienta para el monitoreo de la red en tiempo real.
VnStat soporta muchas opciones, detalles sobre los que se pueden encontrar en la página de manual.
Instale vnStat
# Ubuntu o debian
$ Sudo apt-get install vnStat
# Fedora o centos (de EPEL)
$ Sudo yum install vnStat
speedometer
Otra herramienta pequeña y sencilla que simplemente saca buenos gráficos en busca de tráfico entrante y saliente a través de una interfaz dada.
$ speedometer -r eth0 -t eth0
# ubuntu or debian users
$ sudo apt-get install speedometer
Trafshow
#aptitude install netdiag
Como NetWatch y pktstat, trafshow informa las actuales conexiones activas, su protocolo y la velocidad de transferencia de datos en cada conexión. Puede filtrar las conexiones que utilizan filtros de tipo pcap.
Como NetWatch y pktstat, trafshow informa las actuales conexiones activas, su protocolo y la velocidad de transferencia de datos en cada conexión. Puede filtrar las conexiones que utilizan filtros de tipo pcap.
Monitorear únicas conexiones tcp
martes, 29 de septiembre de 2015
20 Comandos Netstat para Administradores de Redes Linux
1. Listado de todos los puertos de escucha TCP y conexiones UDP
Listado de todos los puertos (TCP y UDP) mediante netstat -a.
2. Listado de conexiones de puertos TCP
Listado de sólo conexiones de puerto TCP (Transmission Control Protocol) utilizando netstat -at.
3. Listado de conexiones UDP Puertos
Listado sólo conexiones de puerto UDP (User Datagram Protocol) utilizando netstat -au.
4. Listado de todas las conexiones de Escucha
Listado de todas las conexiones activas de escucha de puertos con netstat -l.
5. Listado de todos los puertos de escucha TCP
Listado de todos los puertos TCP de escucha activa mediante la opción netstat -lt.
6. Listado de todos los puertos de escucha UDP
Listado de todos los puertos UDP de escucha activa mediante la opción netstat -lu.
7. Listado de todos los puertos de escucha UNIX
Listado de todos los puertos de escucha UNIX activos utilizando netstat -lx.
8. Mostrando estadísticas por protocolo
Muestra estadísticas por protocolo. De forma predeterminada, se
muestran las estadísticas para el TCP, UDP, ICMP e IP. El parámetro -s
se puede utilizar para especificar un conjunto de protocolos.
9. Mostrando estadísticas por protocolo TCP
Mostrando estadísticas de único protocolo TCP mediante la opción netstat -st.
11. Visualización del nombre de servicio con PID
Viendo nombre de servicio con su número PID, utilizando la opción netstat -tp mostrará "PID / Program Name".
12. Viendo modo promiscuo
Viendo modo promiscuo con ac, netstat imprimirá la información
seleccionada o actualización de la pantalla cada cinco segundo.
Actualización de la pantalla por defecto en cada segundo. netstat -ac 5 | grep tcp
13. Viendo enrutamiento IP del núcleo
14. Muestra la tabla de enrutamiento del núcleo
Con netstat y comando de la ruta IP. netstat -r
15. Mostrando transacciones de paquetes de interfaz de red
Que incluye tanto
la transferencia y recepción de paquetes con un tamaño de MTU. netstat -i
Mostrando tabla de interfaz del kernel, similar al comando ifconfig.
netstat -ie
netstat -ie
16. Visualización de información de IPv4 e IPv6
Muestra la información de pertenencia a un grupo multicast de IPv4 e IPv6. netstat -g
17. Imprimir Información Netstat continuamente
Para obtener información netstat cada pocos segundos, a continuación,
utilice el comando siguiente, se imprimirá la información netstat
continuamente, por ejemplo, cada pocos segundos.
netstat -c
18. Encontrar direcciones no soportadas
Encontrar familias de direcciones sin configurar con alguna información útil. netstat --verbose
19. Encontrar programas de escucha
Averigüe cuántos escuchar programas que se ejecutan en un puerto.
netstat -ap|grep http
20. Visualización de estadísticas de red RAW. netstat --statistics --raw
martes, 25 de agosto de 2015
La generación de claves GPG: No hay suficientes bytes aleatorios disponibles
No bytes aleatorios suficientes disponibles
Generación de claves con GnuPG
Cualquier persona que quiera crear una nueva clave establecido a través de GnuPG (GPG) pueden presentar en este error:
Tenemos que generar una gran cantidad de bytes aleatorios. Es una buena idea realizar
alguna otra acción (escriba en el teclado, mueva el ratón, utilizar la
discos) durante la generación privilegiada; esto da el número aleatorio
generador una mejor oportunidad de ganar suficiente entropía.
No hay suficientes bytes aleatorios disponibles. Por favor hacer algún otro trabajo para dar
el sistema operativo la oportunidad de recoger más entropía! (Necesidad 142 bytes más)
El problema es causado por la falta de entropía (o el ruido del sistema aleatorio).
Para comprobar la entropía disponible, compruebe los parámetros del kernel colocando el siguiente comando en un terminal como root:
cat /proc/sys/kernel/random/entropy_avail
root@repo-chimanta:/# cat /proc/sys/kernel/random/entropy_avail
15
Para solucionarlo, ejecute el comando rngd: rngd -f -r / dev / urandom
Debian / Ubuntu: apt-get install rng-tools
Red Hat / CentOS: yum install -y rng-utils
root@repo-chimanta:/# rngd -f -r /dev/urandom
rngd 2-unofficial-mt.14 starting up...
entropy feed to the kernel ready
root@repo-chimanta:/# cat /proc/sys/kernel/random/entropy_avail
3413
lunes, 17 de agosto de 2015
Comando SED en Linux
Qué es sed
SED (Stream EDitor) es un editor de flujos y ficheros de forma no interactiva. Permite modificar el contenido de las diferentes líneas de un fichero en base a una serie de comandos o un fichero de comandos (-f fichero_comandos).
Sed recibe por stdin (o vía fichero) una serie de líneas para manipular, y aplica a cada una de ellas los comandos que le especifiquemos a todas ellas, a un rango de las mismas, o a las que cumplan alguna condición..
Su sintaxis es de la forma:
sed [opciones] ´[comandos]´ archivos-de-entrada.
Algunas de sus opciones son:
i Insertar línea antes de la línea actual.
a Insertar línea después de la línea actual.
c Cambiar línea actual.
d Borrar línea actual.
p Imprimir línea actual en salida estándar.
s Sustituir cadena en línea actual.
r archivo Añadir contenido de “archivo” a la línea actual.
w archivo Escribir salida a un archivo.
! Aplicar instrucción a las líneas no seleccionadas por la condición.
q Finalizar procesamiento del archivo.
Su sintaxis es de la forma:
sed [opciones] ´[comandos]´ archivos-de-entrada.
Algunas de sus opciones son:
i Insertar línea antes de la línea actual.
a Insertar línea después de la línea actual.
c Cambiar línea actual.
d Borrar línea actual.
p Imprimir línea actual en salida estándar.
s Sustituir cadena en línea actual.
r archivo Añadir contenido de “archivo” a la línea actual.
w archivo Escribir salida a un archivo.
! Aplicar instrucción a las líneas no seleccionadas por la condición.
q Finalizar procesamiento del archivo.
Por ejemplo:
Sustituir apariciones de cadena1 por cadena2 en todo el fichero:
# sed 's/cadena1/cadena2/g' fichero > fichero2
Sustituir apariciones de cadena1 por cadena2 en las líneas 1 a 10:
# comando | sed '1,10 s/cadena1/cadena2/g'
Eliminar las líneas 2 a 7 del fichero
# sed '2,7 d' fichero > fichero2
Buscar un determinado patrón en un fichero:
# sed -e '/cadena/ !d' fichero
Buscar AAA o BBB o CCC en la misma línea:
# sed '/AAA/!d; /BBB/!d; /CCC/!d' fichero
Buscar AAA y BBB y CCC:
# sed '/AAA.*BBB.*CCC/!d' fichero
Buscar AAA o BBB o CCC (en diferentes líneas, o grep -E):
# sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d
# gsed '/AAA\|BBB\|CCC/!d'
Formato de uso
El formato básico de uso de sed es:
# sed [-ns] '[direccion] instruccion argumentos'
Donde:
[direccion] es opcional, siendo un número de línea (N), rango de números de línea (N,M) o búsqueda de regexp (/cadena/) indicando el ámbito de actuación de las instrucciones. Si no se especifica [direccion], se actúa sobre todas las líneas del flujo.
Instruccion puede ser:
i = Insertar línea antes de la línea actual.a = Insertar línea después de la línea actual.
c = Cambiar línea actual.
d = Borrar línea actual.
p = Imprimir línea actual en stdout.
s = Sustituir cadena en línea actual.
r fichero = Añadir contenido de "fichero" a la línea actual.
w fichero = Escribir salida a un fichero.
! = Aplicar instrucción a las líneas no seleccionadas por la condición.
q = Finalizar procesamiento del fichero.
-n: No mostrar por stdout las líneas que están siendo procesadas.
-s: Tratar todos los ficheros entrantes como flujos separados.
Ejemplos de sustitución
Reemplazar cadenas:
# sed 's/^Host solaris8/Host solaris9/g' fichero > fichero2
Reemplazar cadenas sólo en las lineas que contentan una cadena:
# sed '/cadena_a_buscar/ s/vieja/nueva/g' fichero > fichero2
Reemplazar cadenas sólo en en determinadas líneas:
# sed '5,6 s/vieja/nueva/g' fichero > fichero2
Reemplazar multiples cadenas (A o B):
# sed 's/cadenasrc1\|cadenasrc2/cadena_nueva/g'
Sustituir líneas completas (c) que cumplan o no un patrón:
# echo -e "linea 1\nlinea 2" | sed '/1/ cPrueba'
Prueba
linea 2
# echo -e "linea X 1\nlinea 2" | sed '/1/ !cPrueba'
linea 1
Prueba
Ejemplos de Inserción
Insertar en una linea especifica en este caso la linea 41 del archivo fichero.txt
sed -i '41a Texto_a_ingresar' fichero.txt
Insertar en una linea especifica en este caso la linea 41 del archivo fichero.txt
sed -i '41a Texto_a_ingresar' fichero.txt
Insertar 3 espacios en blanco al principio de cada línea:
# sed 's/^/ /' fichero
Añadir una línea antes o despues del final de un fichero ($=última línea):
# sed -e '$i Prueba' fichero > fichero2
# sed -e '$a Prueba' fichero > fichero2
Insertar una linea en blanco antes de cada linea que cumpla una regex:
# sed '/cadena/{x;p;x;}' fichero
Insertar una linea en blanco detras de cada linea que cumpla una regex:
# sed '/cadena/G' fichero
Insertar una linea en blanco antes y despues de cada linea que cumpla una regex:
# sed '/cadena/{x;p;x;G;}' fichero
Insertar una línea en blanco cada 5 líneas:
# sed 'n;n;n;n;G;' fichero
Insertar número de línea antes de cada línea:
# sed = filename | sed 'N;s/\n/\t/' fichero
Insertar número de línea, pero sólo si no está en blanco:
# sed '/./=' fichero | sed '/./N; s/\n/ /'
Si una línea acaba en \ (backslash) unirla con la siguiente:
# sed -e :a -e '/\\$/N; s/\\\n//; ta' fichero
Ejemplos de Selección/Visualización
Ver las primeras 10 líneas de un fichero:
# sed 10q
Ver las últimas 10 líneas de un fichero:
# sed -e :a -e '$q;N;11,$D;ba'
Ver un rango concreto de líneas de un fichero:
# cat -n fich2 | sed -n '2,3 p'
2 linea 2
3 linea 3
(Con cat -n, el comando cat agrega el número de línea).
(Con sed -n, no se imprime nada por pantalla, salvo 2,3p).
Ver un rango concreto de líneas de varios ficheros:
# sed '2,3 p' *
linea 2 fichero 1
linea 3 fichero 1
linea 2 fichero 2
linea 3 fichero 2
(-s = no tratar como flujo sino como ficheros separados)
Sólo mostrar la primera linea de un fichero:
# sed -n '1p' fichero > fichero2.txt
No mostrar la primera linea de un fichero:
# sed '1d' fichero > fichero2.txt
Mostrar la primera/ultima línea de un fichero:
# sed -n '1p' fichero
# sed -n '$p' fichero
Imprimir las líneas que no hagan match con una regexp (grep -v):
# sed '/regexp/!d' fichero
# sed -n '/regexp/p' fichero
Mostrar la línea que sigue inmediatamente a una regexp:
# sed -n '/regexp/{n;p;}' fichero
Mostrar desde una expresión regular hasta el final de fichero:
# sed -n '/regexp/,$p' fichero
Imprimir líneas de 60 caracteres o más:
# sed -n '/^.\{60\}/p' fichero
Imprimir líneas de 60 caracteres o menos:
# sed -n '/^.\{65\}/!p' fichero
# sed '/^.\{65\}/d' fichero
Ejemplos de Borrado
Eliminar un rango concreto de líneas de un fichero:
# sed '2,4 d' fichero > fichero2.txt
Eliminar todas las líneas de un fichero excepto un rango:
# sed '2,4 !d' fichero > fichero2.txt
Eliminar la última línea de un fichero
# sed '$d' fichero
Eliminar desde una línea concreta hasta el final del fichero:
# sed '2,$d' fichero > fichero2.txt
Eliminar las líneas que contentan una cadena:
# sed '/cadena/ d' fichero > fichero2.txt
# sed '/^cadena/ d' fichero > fichero2.txt
# sed '/^cadena$/ d' fichero > fichero2.txt
Eliminar líneas en blanco (variación del anterior):
# comando | sed '/^$/ d'
# sed '/^$/d' fichero > fichero2.txt
Eliminar múltiples líneas en blanco consecutivas dejando sólo 1:
# sed '/./,/^$/!d' fichero
Añadir una línea después de cada línea:
# echo -e "linea 1\nlinea 2" | sed 'aPrueba'
linea 1
Prueba
linea 2
Prueba
Eliminar espacios al principio de línea:
# sed 's/^ *//g' fichero
Eliminar todos los espacios que haya al final de cada línea:
# sed 's/ *$//' fichero
Eliminar espacios sobrantes a principio y final de línea, o ambos:
# sed 's/^[ \t]*//' fichero
# sed 's/[ \t]*$//' fichero
# sed 's/^[ \t]*//;s/[ \t]*$//' fichero
Eliminar tags HTML:
# sed -e :a -e 's/<[^>]*>//g;/</N;//ba' fichero
Borrar líneas duplicadas no consecutivas de un fichero:
# sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P' fichero
Eliminar líneas en blanco y comentarios bash:
# comando | sed '/^$/ d'
# sed '/^$/d; / *#/d' fichero > fichero2.txt
Uso de salida selectiva
Salir a nuestra voluntad antes de acabar el fichero:
# sed -e '/uno/ s/uno/1/' -e '/salir/ q' fichero > fichero2.txt
# sed 10q fichero
# sed q fichero
Equivalencia de -e con ";":
# sed -e '/AAA/b' -e '/BBB/b' -e 'd' == sed '/AAA/b;/BBB/b;d'
Usar 'q' apropiadamente reduce tiempo de procesamiento:
# sed -n '10,20p' fichero
# sed -n '21q;10,20p' fichero -> Más rápido que el anterior.
Conversión de CRLF de DOS a formato UNIX (LF):
# sed 's/.$//' fichero
Conversión de LF de UNIX a formato DOS (CRLF):
# sed 's/$'"/`echo \\\r`/" fichero
Obtener el Subject de un correo, pero sin cadena "Subject: ":
# sed '/^Subject: */!d; s///;q' fichero
Imprimir párrafo (cadenas entre 2 líneas en blanco) si contiene XXX:
# sed -e '/./{H;$!d;}' -e 'x;/XXX/!d;' fichero
Imprimir párrafo si contiene (1) XXX y ZZZ o bien (2) XXX o ZZZ :
# sed -e '/./{H;$!d;}' -e 'x;/XXX/!d;/ZZZ/!d'
# sed -e '/./{H;$!d;}' -e 'x;/XXX/b' -e '/ZZZ/b' -e d
Suscribirse a:
Entradas (Atom)