jueves, 11 de abril de 2019

Montar un disco duro o particion en Linux

Vamos al punto, aquí se describen los pasos de como montar un disco duro o una partición en Linux mediante la terminal.

1. Primero debemos crear la carpeta donde montaremos la partición.

$ mkdir /media/temp

Puede ser en cualquier ruta que queramos.

2. Verificar que disco y partición vamos a montar, existen varias opciones para ello, pero aquí solo describiremos dos.

a) usando fdisk

$ fdisk -l

Device     Boot     Start       End    Sectors  Size Id Type
/dev/sda1  *         2048 144799743  144797696   69G 83 Linux
/dev/sda2       144801790 146798591    1996802  975M  5 Extended
/dev/sda5       144801792 146798591    1996800  975M 82 Linux swap / Solaris
/dev/sdb1  *            1    243202 1953512448 2000G  c W95 FAT32 (LBA)


b) usando lsblk

$ lsblk -fm

FSTYPE      NAME    SIZE OWNER GROUP MODE
            sda     1.8T root  disk  brw-rw----
ext4        ├─sda1  500M root  disk  brw-rw----
LVM2_member └─sda2  1.8T root  disk  brw-rw----
ext4          ├─backups_root (dm-0)
                     50G root  disk  brw-rw----
swap          ├─backups-lv_swap (dm-1)
                   15.8G root  disk  brw-rw----
ext4          └─backups-lv_home (dm-2)
                    1.8T root  disk  brw-rw----
vfat        sdb     1.8T root  disk  brw-rw----
            └─sdb1  1.8T root  disk  brw-rw----


En nuestro caso el disco que queremos montar es /dev/sdb1 (un disco duro externo de 2T)

Nota: para utilizar ambos comandos se necesitan los permisos de un superusuario.

3. Ahora que ya sabemos que disco montar, solo queda montar la partición:

$ mount /dev/sdb1 /media/temp

Solo tenemos que listar la carpeta y nos debería mostrar el contenido.

Ahora si nuestro disco es FAT o NTFS tenemos que agregar unos parámetros para que se monte de manera correcta, agregamos el parámetro -t, seguido de la opción deseada:

FAT    --> vfat
NTFS --> ntfs-3g

Ejemplo(s):
$ mount -t ntfs-3g /dev/sdb1 /media/temp
$ mount -t vfat /dev/sdb1 /media/temp

Para utilizar la opción del ntfs es necesario instalar el paquete ntfs-3g, para el caso de distribuciones CentOS hay que agregar el repositorio EPEL y para el caso de distribuciones Ubuntu ya se encuentra en los repositorios predeterminados.

> Instalar en CentOS
Instalamos primero nuestro repositorio:

RHEL/CentOS 7
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

RHEL/CentOS 6 (64 Bit)
$ sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Instalamos nuestro paquete:

# yum install ntfs-3g

> Instalar en Ubuntu
Aquí es más fácil el asunto:

# apt-get install ntfs-3g

martes, 2 de abril de 2019

Saber puertos abiertos en Windows

En ocasiones cuando trabajamos con redes locales o remotas, empleamos aplicaciones o dispositivos que utilizan direcciones IP y puertos para "escuchar y ser escuchados", en consecuencia si estos puertos no están abiertos o están bloqueados no podremos comunicarnos y tener los resultados deseados.

Para ello tenemos que realizar, primeramente, algunas pruebas para saber si estos puestos están abiertos o no, saber la causa y poder resolverlo. Aquí detallamos algunos métodos usados en Windows.

Telnet
Con este comando, a través del cmd, comprobaremos el estatus de un puerto determinado en una maquina remota a la que deseamos conectarnos.

telnet <direccion IP> <puerto>
aquí un ejemplo:

c:\telnet 10.51.51.1 3306
pulsamos enter, si no esta abierto el puerto 3306 (de MySQL), se nos mostrara un mensaje de error, en casi contrario nos devolverá un mensaje de conexión o en su caso un prompt o cursor parpadeante.

Nota:
Para poder utilizar este comando necesitamos activar esta característica de Windows. Para ello accedemos a: Panel de Control > Programas y características > Activar o desactivar características de Windows, activamos la casilla y listo.



PowerShell
Este comando ya es posible utilizarlo en las versiones de Windows 7 y versiones posteriores, es una interfaz de consola (CLI) con posibilidad de escritorio y unión de comandos por medio de instrucciones, para ejecutarlo pulsamos Windows + r y escribimos powershell.

Test-NetConnection <direccion IP> -Port <puerto>

Aquí un ejemplo, como el anterior:
Test-NetConnection 10.51.51.1 -Port 3306

Si todo funciona, nos dará una respuesta como la siguiente:

ComputerName     : 10.51.51.1
RemoteAddress    : 10.51.51.1
RemotePort       : 3306
InterfaceAlias   : Ethernet
SourceAddress    : 10.51.51.2
TcpTestSucceeded : True


Netstat

Esta herramienta nos permite ver una valiosa cantidad de información sobre nuestras conexiones de red. Es mas útil cuando deseamos saber de nuestro equipo que puertos están abiertos. La sintaxis que usaremos sera la siguiente:

netstat -an | findstr <puerto>

Cada una de las opciones significa lo siguiente:
-a: el listado completo de conexiones en uso
-n: muestra direcciones y puertos en formato numérico
findstr: la cadena que deseamos buscar, en este caso el puerto

El siguiente ejemplo:
netstat -an | findstr 80
nos dará algo similar a:
TCP  11.1.1.183:55564   104.192.108.80:80 ESTABLISHED
TCP  11.1.1.183:60318   54.208.52.17:80   CLOSE_WAIT
TCP  11.1.1.183:60755   23.205.213.18:80  TIME_WAIT


Nota: este comando con estas opciones es solo para Windows.

miércoles, 27 de marzo de 2019

Evitar la suspensión automatica en Windows 10 a los pocos minutos

Seguramente has tenido un problema con tu Windows 10 que se suspende aproximadamente a los 2 minutos de inactividad, a pesar de tener la suspensión desactivada, has consultado muchas soluciones a través de los buscadores, la mayoría te dice que en las opciones de energía puedes modificar todo esto:



Pero te das cuenta que no funciona y se vuelve frustrante y molesto, y a que se debe todo esto, bueno, según Microsoft, este problema solo ocurre en algunos equipos que son algo antiguos donde los controladores del sistema no funcionan al 100% en nuestro Windows 10, una posible solución es actualizar el controlador de vídeo, ya que son estos los que actúan de forma directa sobre las funciones de energía del equipo, aunque a veces esto tampoco es suficiente.

Pero no te preocupes, hay una solución sencilla, para ello hay que activar una opción oculta llamada: Tiempo de espera para la suspensión desatendida (¿por que ocultarlo?) a través del regedit. Los pasos son los siguientes:

1. Abrir el regedit
Por si no sabes como:
a. teclear Windows + R
b. escribir regedit y pulsar enter

2. Buscar la clave: 7bc4a2f9-d8fc-4469-b07b-33eb785aaca0.
la cual se encuentra en la siguiente ruta:
HKEY_LOCAL_MACHINE
--SYSTEM
----CurrentControlSet
------Control
--------Power
----------PowerSettings
------------238C9FA8-0AAD-41ED-83F4-97BE242C8F20
--------------7bc4a2f9-d8fc-4469-b07b-33eb785aaca0

3. En el panel derecho de la clave encontrada, buscar Attributes.
Cambiar el valor de REG_DWORD de 1 a 2, para modificarlo solo dar doble clic y se muestra la ventana correspondiente donde hay que cambiar el valor.


4. Cerrar el editor de registro

5. Pulsar Windows + X y seleccionar Opciones de Energía

6. Da clic en Configuración adicional avanzada.


7. Selecciona tu plan preferido y da clic en Cambiar la configuración del plan.

8. En la ventana que se muestra da clic en Cambiar la configuración avanzada de energía.

Nota: también es posible llegar hasta este punto a través del panel de control: Panel de control\Hardware y sonido\Opciones de energía\Editar la configuración del plan.

9. Buscar en Suspender, la opción de Tiempo de espera de suspensión desatendida del sistema.


Como observaran, Windows 10 tan solo nos da 2 minutos de inactividad, por lo cual se suspende con esa rapidez, solo hay que modificarlo a los valores que deseemos, le damos aceptar y listo habremos terminado.

jueves, 14 de marzo de 2019

Uso del comando cp (copiar) en Linux

Este comando cp, conocido como copy, se utiliza para la copia de archivos o carpetas, los cuales pueden ser copiados al mismo directorio o en uno diferente, con este comando, al ser ejecutado, el archivo original no es modificado o cambiado.

Aquí el uso básico:

cp [opciones] archivoorigen archivodestino
En el siguiente ejemplo, realizamos una copia de nuestro archivo en la misma ruta, cambiándole el nombre:

cp archivo.txt copia_del_archivo.txt
si quisiéramos copiarlo a otro directorio, solo tenemos que especificar la ruta:

cp archivo.txt /home/midirectorio/
sino se le va a cambiar el nombre, no es necesario especificarlo.

Si deseamos copiar varios archivos solo tendremos que indicarlos, y al final poner la ruta donde los copiaremos:
cp file1.txt file2.txt file3.txt /home/midirectorio/
Ahora si deseamos copiar directorios, tendremos que poner la opcion de -r para indicar que realizaremos una copia recursiva:
cp -r directorio directorioCopia

Este comando tiene muchas opciones, anteriormente solo hemos visto lo básico, pero veremos algunas que también son de utilidad:

-b
Crea un backup en el destino, esto para el caso que exista un archivo con el mismo nombre.

-f, --force
Realiza el borrado de los archivos destino sin consultar o avisar al usuario.

-i, --interactive
Informa antes de sobreescribir un archivo en el destino indicado.

-l, --link
Realiza un enlace en lugar de copiar los archivos.

-p
Realiza la copia de los archivos y directorio conservando la fecha de modificación de los archivos y directorios originales.

-r, -R, --recursive
Realiza la copia de forma recursiva (ideal para directorios).

-u, --update
Esta opción es muy útil para verificar si el archivo destino sufrió alguna modificación, si encuentra algún cambio realiza la copia, en caso contrario conserva el archivo.

-v, --verbose
Explica que es lo que se esta realizando, ideal cuando son varios archivos o de gran tamaño.

Para poner las opciones se pueden poner cada una de las que necesitamos de la siguiente forma:
cp -r -u -v fotos /home/directorio/fotos
o bien:
cp -ruv fotos /home/directorio/fotos
también podemos hacer esto:
cp -ru --verbose fotos /home/directorio/fotos
Como ven las opciones son muy amplias, así que solo queda puedan realizar sus propias pruebas y retroalimenten este pequeño blog.

jueves, 17 de enero de 2019

Crear script para respaldo de base de datos PostgreSQL

Similar al post script para respaldo de bases de datos de MySQL podemos generar un bash en nuestro servidor para que genere un respaldo de nuestra base de datos deseada y posteriormente con el cron crear nuestra tarea automatizada.

Creamos un archivo con extensión .sh en la carpeta que deseemos, el script es el siguiente (le llamaremos /home/miusuario/scripts/backup.sh):

#!/bin/bash
# variables
directorio="/home/respaldos/postgresql";
database="dbbasedatos";
fecha="`date +%Y%m%d%H%M%S`";
usuario="miusuario"
host="11.1.1.1"
export PGPASSWORD=miclave

# generar el dump y crear el log
pg_dump -U $usuario -h $host -F t -d $database|gzip -9 > $directorio/$fecha.tar.gz && echo 'Respaldo realizado con exito.' >> $directorio/bitacora.log;

Aquí una breve explicación:
#Nuestras variables
directorio: el directorio donde generaremos nuestros respaldos.
database: la base de datos a respaldar.
fecha: la fecha y hora actual que la concatenaremos con nuestro nombre de archivo.
usuario: el usuario de postgresql para generar el respaldo (debe tener permisos sobre nuestra base).
host: servidor de base de datos, aquí muy importante si nuestro usuario no tiene acceso al host de localhost nos mostrara un error, deben verificar con que host fue creado.

#Nuestros comandos
export PGPASSWORD: la contraseña de nuestro usuario, en caso de no tener contraseña omitir esta linea.

Ahora viene nuestro comando que realiza toda la operación, para mas detalle puede consultar pg_dump --help a través de la consola.
-U el nombre de usuario
-h el servidor de base de datos
-F t el formato de salida, para nuestro caso es tar
-d la base de datos a respaldar
gzip -9 comprime nuestra salida con el parámetro de la mejor compresión
$directorio/$fecha.tar.gz con nuestros parametros de las variables es donde se generara nuestro respaldo (p.e. /home/respaldos/postgresql/1701191257.tar.gz).

Nota: si nuestro usuario no tiene contraseña, podemos agregar el parámetro de -w (o bien --no-password) a la linea de nuestro comando pg_dump.

Para probarlo podemos ejecutar nuestro bash y ver nuestro resultado.

$ sh backup.sh
Hasta este punto no debería existir algún problema, solo faltaría crear nuestro cron para automatizar nuestra tarea:

$ crontab -e 

nuestras lineas:

10 1 * * * /home/respaldos/scripts/backup.sh 1> /dev/null 2> /home/respaldos/errores.log

 y listo hemos terminado.

martes, 15 de enero de 2019

Comprobar la ejecución de un CRON y guardar el log

Muchas veces cuando creamos un CRON necesitamos saber si la tarea se ejecutará correctamente o contiene errores, debido a que no se ejecuta en una consola visible, no podemos saber el resultado una vez que se pone en marcha. Para ello mostraremos algunos trucos que podemos usar.

Guardar la salida en un log

Con esta opción solo se guardaran los errores que se generen en un archivo que seleccionemos:

* * * * * /home/miusuario/script 1> /dev/null 2> /home/miusuario/logs/archivo.log

Hay que recordar los números de la salida (redireccionamiento con el simbolo >):
  • 0 stdin (standard input): el comando
  • 1 stdout (standard output): /dev/null la salida se descarta
  • 2 stderr (standard error): /home/miusuario/logs/archivo.log la ruta y el archivo de log.
Con esta otra opción guardaremos tanto la salida como los errores:

* * * * * /home/miusuario/script &> /home/miusuario/logs/archivo.log

Enviar el resultado por email

Es similar a la anterior pero envía la información a un correo predeterminado.


* * * * * /home/miusuario/script 1> /dev/null 2>&1 | mail  -s "Errores del cron" correo@correo.com

Cabe mencionar que para ello debe estar instalado y configurado correctamente el comando mail.

Simular el entorno de ejecución

Esta opción permite ejecutar un cron en el momento que deseemos

$ env -i /home/miusuario/script

De esta forma no tenemos que esperar hasta cuando se ejecute de acuerdo a lo programado, podemos realizar las pruebas que sean necesarias en un entorno similar a las que hace el cron.

Entradas Populares