Eliminar todos los mensajes de correo de un buzon en Fedora

Eliminar los mensajes de correo de un buzon es mas facil de lo que crees.

Solo necesitas acceder al buzon y correr el comando d * (d seguido de un asterisco), presiona ENTER y listo.

Aqui los detalles.

1. Obten acceso a tu buzon, teclea mail seguido de ENTER, se desplegara una pantalla con correos, seguida de un prompt &.

Linux console | jpacheco@aex-infra ~
[jpacheco@aex-infra ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/spool/mail/jpacheco”: 39723 messages 39719 unread
1 logwatch@aex-infra.a Thu Feb 20 03:14 177/6005 “Logwatch for aex-infr”
>U 2 logwatch@aex-infra.a Fri Feb 21 03:06 242/8971 “Logwatch for aex-infr”
U 3 logwatch@aex-infra.a Sat Feb 22 03:48 149/4913 “Logwatch for aex-infr”
U 4 logwatch@aex-infra.a Sun Feb 23 03:07 259/10508 “Logwatch for aex-infr”
U 5 logwatch@aex-infra.a Mon Feb 24 03:13 203/8006 “Logwatch for aex-infr”
U 6 logwatch@aex-infra.a Tue Feb 25 03:14 139/4729 “Logwatch for aex-infr”
7 logwatch@aex-infra.a Wed Feb 26 03:30 161/5705 “Logwatch for aex-infr”
U 8 logwatch@aex-infra.a Thu Feb 27 03:31 188/7288 “Logwatch for aex-infr”
U 9 logwatch@aex-infra.a Fri Feb 28 03:20 163/6014 “Logwatch for aex-infr”
U 10 logwatch@aex-infra.a Sat Mar 1 03:38 175/6550 “Logwatch for aex-infr”
U 11 logwatch@aex-infra.a Sun Mar 2 03:30 183/7327 “Logwatch for aex-infr”
U 12 logwatch@aex-infra.a Mon Mar 3 03:27 153/5206 “Logwatch for aex-infr”
U 13 logwatch@aex-infra.a Tue Mar 4 03:12 140/4877 “Logwatch for aex-infr”
U 14 logwatch@aex-infra.a Wed Mar 5 03:45 143/4877 “Logwatch for aex-infr”
U 15 logwatch@aex-infra.a Thu Mar 6 03:17 135/4328 “Logwatch for aex-infr”
U 16 logwatch@aex-infra.a Fri Mar 7 03:18 146/4757 “Logwatch for aex-infr”
U 17 logwatch@aex-infra.a Sat Mar 8 03:13 121/3944 “Logwatch for aex-infr”
U 18 logwatch@aex-infra.a Sun Mar 9 03:47 196/6591 “Logwatch for aex-infr”
U 19 logwatch@aex-infra.a Mon Mar 10 03:34 128/4172 “Logwatch for aex-infr”
U 20 logwatch@aex-infra.a Tue Mar 11 03:12 163/5823 “Logwatch for aex-infr”
&

2. Ahora, borra todos los correos, teclea: d * y luego presiona ENTER. Nota que no habra ningun mensaje o indicador de que se estan eliminando los mensajes de correo.

Linux console | jpacheco@aex-infra ~
[jpacheco@aex-infra ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/spool/mail/jpacheco”: 39723 messages 39719 unread
1 logwatch@aex-infra.a Thu Feb 20 03:14 177/6005 “Logwatch for aex-infr”
>U 2 logwatch@aex-infra.a Fri Feb 21 03:06 242/8971 “Logwatch for aex-infr”
U 3 logwatch@aex-infra.a Sat Feb 22 03:48 149/4913 “Logwatch for aex-infr”
U 4 logwatch@aex-infra.a Sun Feb 23 03:07 259/10508 “Logwatch for aex-infr”
U 5 logwatch@aex-infra.a Mon Feb 24 03:13 203/8006 “Logwatch for aex-infr”
U 6 logwatch@aex-infra.a Tue Feb 25 03:14 139/4729 “Logwatch for aex-infr”
7 logwatch@aex-infra.a Wed Feb 26 03:30 161/5705 “Logwatch for aex-infr”
U 8 logwatch@aex-infra.a Thu Feb 27 03:31 188/7288 “Logwatch for aex-infr”
U 9 logwatch@aex-infra.a Fri Feb 28 03:20 163/6014 “Logwatch for aex-infr”
U 10 logwatch@aex-infra.a Sat Mar 1 03:38 175/6550 “Logwatch for aex-infr”
U 11 logwatch@aex-infra.a Sun Mar 2 03:30 183/7327 “Logwatch for aex-infr”
U 12 logwatch@aex-infra.a Mon Mar 3 03:27 153/5206 “Logwatch for aex-infr”
U 13 logwatch@aex-infra.a Tue Mar 4 03:12 140/4877 “Logwatch for aex-infr”
U 14 logwatch@aex-infra.a Wed Mar 5 03:45 143/4877 “Logwatch for aex-infr”
U 15 logwatch@aex-infra.a Thu Mar 6 03:17 135/4328 “Logwatch for aex-infr”
U 16 logwatch@aex-infra.a Fri Mar 7 03:18 146/4757 “Logwatch for aex-infr”
U 17 logwatch@aex-infra.a Sat Mar 8 03:13 121/3944 “Logwatch for aex-infr”
U 18 logwatch@aex-infra.a Sun Mar 9 03:47 196/6591 “Logwatch for aex-infr”
U 19 logwatch@aex-infra.a Mon Mar 10 03:34 128/4172 “Logwatch for aex-infr”
U 20 logwatch@aex-infra.a Tue Mar 11 03:12 163/5823 “Logwatch for aex-infr”
& d *

3. Sal de tu buzon de correo tecleando quit seguido de ENTER, entra de nuevo a tu buzon y listo.

Linux console | jpacheco@aex-infra ~
.
.
.
U 19 logwatch@aex-infra.a Mon Mar 10 03:34 128/4172 “Logwatch for aex-infr”
U 20 logwatch@aex-infra.a Tue Mar 11 03:12 163/5823 “Logwatch for aex-infr”
& d *
& quit

[jpacheco@aex-infra ~]$ mail
No mail for jpacheco

Como obtener la lista de tarjetas de red instaladas en un servidor corriendo Fedora Core

Obiviamente, ademas de usar la interfaz gráfica puedes recurrir a la consola de GNU/Linux para obtener la lista de tarjetas de red instaladas en tu sistema.

Sigue estos dos sencillos pasos:

1. Obten acceso tipo root

Linux console | jpacheco@aex-proxy1 ~
[jpacheco@aex-proxy1 ~]$ su
Password:
[root@aex-proxy1 ~]#

2. Ejecuta el comando dmesg para obtener los mensajes de control del Kernel de GNU/Linux de tu equipo corriendo Fedora Core, agrega el modificardor | grep eth para obtener los mensajes relacionados con las interfaces de red.

Linux console | jpacheco@aex-proxy1 ~
[root@aex-proxy1 ~]# dmesg | grep eth
[ 7.752281] r8169 0000:01:00.0 eth0: RTL8168e/8111e at 0xf7e66000, e8:de:27:02:ca:3f, XID 0c200000 IRQ 50
[ 7.752284] r8169 0000:01:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 8.204309] e1000e 0000:00:19.0 eth1: (PCI Express:2.5GT/s:Width x1) 00:25:64:d6:2b:39
[ 8.204312] e1000e 0000:00:19.0 eth1: Intel(R) PRO/1000 Network Connection
[ 8.204354] e1000e 0000:00:19.0 eth1: MAC: 8, PHY: 8, PBA No: 8021FF-0FF
[ 8.533102] systemd-udevd[396]: renamed network interface eth1 to em1
[ 8.640123] systemd-udevd[399]: renamed network interface eth0 to p1p1

Fijate como la salida de dmesg, muestra el nombre real de las interfaces en este caso em1 y p1p1

Ejecuta el comando ifconfig para ver la lista de tarjetas de red y su configuración en el sistema.

Linux console | jpacheco@aex-proxy1 ~
[root@aex-proxy1 ~]# ifconfig
em1: flags=4163 mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::225:64ff:fed6:2b39 prefixlen 64 scopeid 0x20 ether 00:25:64:d6:2b:39 txqueuelen 1000 (Ethernet)
RX packets 2505 bytes 234071 (228.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1970 bytes 228640 (223.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 21 memory 0xf7ae0000-f7b00000

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 0 (Local Loopback)
RX packets 53 bytes 5940 (5.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 53 bytes 5940 (5.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

p1p1: flags=4099 mtu 1500
ether e8:de:27:02:ca:3f txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

em1 – es la interfaz que en este momento esta activa y cuenta con la dirección IP 192.168.1.2, mascara de subred 255.255.255.0 (o 192.168.0.2/24 – lo explicaré otro dia con mas calma)
lo – interface de red de localhost o loopback IP 127.0.0.1 es decir tu equipo
p1p1 – otra interface de red física pero esta aún no ha sido configurada

Post relacionados:
Topologías de red
Conceptos de redes
Dispositivos de red :: Switch
Dispositivos de red :: Concentrador o ‘hub’
Redes de computadoras
Direcciones IPv4
Modelo de Referencia OSI

Squid Proxy Cache Instalación en Fedora Core

Squid-cacheSquid Proxy Cache es un servidor que actúa como intermediario entre una red e Internet para lo cual guarda en cache peticiones recurrentes a servidored web y de DNS, asi mismo acelera el acceso a un servidor web y proveé de seguridad mediante el filtrado del tráfico de Internet.

El proceso de instalación en Fedora Core es por demás sencillo, nuevamente recurriremos a yum. Y como ya es sabido, requerimos de acceso tipo root para la instalación.

Instalación

1. Accedemos a nuestro servidor y obtenemos acceso tipo root.

Linux console | jpacheco@aex-proxy1 ~
[jpacheco@aex-proxy1 ~]$ su
Password:
[root@aex-proxy1 ~]#

2. Ejecutaremos la instalación usando: yum como se muestra a continuación.

Linux console | root@aex-proxy1 ~
[root@aex-proxy1 ~]$ yum -y install squid
Loaded plugins: langpacks, refresh-packagekit
Resolving Dependencies
–> Running transaction check
—> Package squid.i686 7:3.3.13-1.fc20 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
squid i686 7:3.3.13-1.fc20 updates 2.5 M

Transaction Summary
================================================================================
Install 1 Package

Total download size: 2.5 M
Installed size: 8.7 M
Downloading packages:
squid-3.3.13-1.fc20.i686.rpm | 2.5 MB 00:07
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction (shutdown inhibited)
Installing : 7:squid-3.3.13-1.fc20.i686 1/1
Verifying : 7:squid-3.3.13-1.fc20.i686 1/1

Installed:
squid.i686 7:3.3.13-1.fc20

Complete!

[root@aex-proxy1 ~]#

3. Para asegurarnos de que SQUID arrancara cada vez que iniciemos nuestro equipo usaremos systemctl.

Linux console | root@aex-proxy1 ~
[root@aex-proxy1 ~]$ systemctl enable squid.service
ln -s ‘/usr/lib/systemd/system/squid.service’ ‘/etc/systemd/system/multi-user.target.wants/squid.service’
[root@aex-proxy1 ~]#

Los siguientes comandos te sirven para controlar el servidor:

systemctl start squid.service <- Arranca SQUID systemctl status squid.service <- Muestra el estado de SQUID systemctl stop squid.service <- Detiene la ejecución de SQUID

Listo, Squid esta instalado y listo para arrancar automaticamente al encender el servidor.

Posts relacionados:
Squid Proxy Cache | TCP_MISS/304 TCP_MISS/200

¿Como cambiar la contraseña de root en MySQL?

Si por alguna razón, olvidaste la contraseña de root de tu servidor MySQL, en este post te explico como recuperarla. Como siempre este post aplica para distribuciones GNU/Linux basadas en RedHat.

Sintoma

Al intentar conectarte al servidor MySQL recibes un mesaje de errror 1045, como se muestra a continuación:

Linux console | jpacheco@aex-infra ~
[jpacheco@aex-infra ~]$ mysql -u jpacheco -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘jpacheco’@’localhost’ (using password: YES)

Pre-reqisitos

– Acceso de root en el servidor ya que es necesario detener los servicios de MySQL y arrancar el servicio de MySQL manualmente.

Procedimiento

Para solucionar este problema sigue estos ocho sencillos pasos.

1. Obten acceso de root en el servidor

Linux console | jpacheco@aex-infra ~
[jpacheco@aex-infra ~]$ su
Password:
[root@aex-infra jpacheco]#

2. Ahora hay que detener el servicio MySQL Server

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# systemctl stop mysqld.service

3. A continuación, arrancaremos MySQL en modo seguro usando: safe_mysqld --skip-grant-tables“.

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# safe_mysqld –skip-grant-tables
140906 13:33:11 mysqld_safe Logging to ‘/var/log/mysqld.log’.
140906 13:33:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

El proceso anterior deberá seguir ejecutandose, por lo que necesitaras abrir una nueva consola (con acceso a root) y ejecutar en ella el comando: mysql -u root mysql

Linux console | root@aex-infra /
[root@aex-infra ~]# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.5.35 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

Nota como MySQL server no requirio de una contraseña.

4. Ahora, asignaremos una nueva contraseña.

Linux console | root@aex-infra /
mysql> UPDATE mysql.user SET Password=PASSWORD(‘contraseña‘) WHERE User=’root’;
Query OK, 3 rows affected (0.06 sec)
Rows matched: 4 Changed: 3 Warnings: 0

mysql>

Cambia, la palabra contraseña por la nueva contraseña de root de tu servidor MySQL.

5. Un par de comandos, FLUSH PRIVILEGES; y quit; antes de continuar.

Linux console | root@aex-infra /
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit;
Bye

6. Debemos terminar el proceso safe_mysqld --skip-grant-tables que se ejecuta en la otro consola, para esto usaremos el comando: kill $(cat /var/run/mysqld/mysqld.pid)

Linux console | root@aex-infra /
[root@aex-infra ~]# kill $(cat /var/run/mysqld/mysqld.pid)

En la otra consola nos aparecera un mensaje confirmando que MySQL se ha detenido.

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# safe_mysqld –skip-grant-tables
140906 13:33:11 mysqld_safe Logging to ‘/var/log/mysqld.log’.
140906 13:33:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140906 13:51:19 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

7. Arrancamos MySQL server.

Linux console | root@aex-infra /
[root@aex-infra jpacheco]# systemctl start mysqld.service

8. Finalmente, habras recuperado la contraseña de root de tu servidor MySQL y podras acceder a MySQL server usando: mysql -u root -p sin problemas.

Posts similares:
MySQL como cambiar / asignar la contraseña inicial
MySQL | Adding new user accounts to MySQL server

DynDNS – Instalación de script de actualización en Fedora Core

El servicio de resolucion de nombres de dominio (DNS) no es mas que la traduccion que se hace de un nombre de dominio, por ejemplo: jpacheco.mx a una dirección IP en este caso:  67.205.17.168.

Para los no versados en este asunto, el mundo del internet no usa los nombres de dominio, sino  en realidad usa las direcciones IP. En el caso del dominio jpacheco.mx este cuenta con una dirección IP estática – que no cambia, por lo que el servicio de DNS no requiere de mayor complicación. Cada vez que alguien quiere acceder a jpacheco.mx un servidor de DNS responde con la dirección IP antes mencionada.

¿Que pasa en aquellos casos donde contamos con una dirección IP dinámica como las que ofrece las compañias telefónicas o de cable?

Aquí la cosa cambia, digamos que se complica un poco más y es donde entra la gestión dinámica de nombres de dominio, servicio que ofrece DynDNS .

DynDNS ofrece un servicio de resolucion dínamica de nombres de dominio de ahí el nombre del sitio: Dynamic Domain Name System.

Con cada cambio de dirección IP en la conexíon a internet, el script de actualización de DynDNS reporta el cambio de IP y a su vez DynDNS se encarga de iniciar la propagación de  la nueva direccón IP por los servidores de DNS de todo el mundo, para que los visitantes de puedan acceder a este blog por el nombre de dominio y no por la IP, al final del día, es más sencillo recordar un nombre de dominio que una dirección IP, ¿no lo crees?

Este procesode instalación aplica para las distribuciones GNU/Linux de la rama RedHa.

Pre-requisitos

– Acceso root
– Antes de instalar el script de actualización de DynDNS necesitas instalar el soporte de Perl para SSL, utiliza Yum para tal efecto.

Linux console | root@aex-infra:~/
[root@aex-infra ~]# yum -y install perl-IO-Socket-SSL

Instalación

1. Descargar y descomprimir el código fuente del script:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# wget http://cdn.dyndns.com/ddclient.tar.gz
[root@aex-infra ~]# tar -xzvf ddclient.tar.gz
[root@aex-infra ~]# cd ddclient-3.7.3/

2. Creamos las carpetas para donde se almacenaran los archivos de configuración:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# mkdir /etc/ddclient
[root@aex-infra ~]# mkdir /var/cache/ddclient

3. Copiamos los archivos de configuración a la carpeta correspondiente, nota como le cambiamos el nombre al archivo sample-etc_ddclient.conf al tiempo que lo copiamos a su nueva ubicación:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# cp ddclient /usr/local/sbin
[root@aex-infra ~]# cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf

4. Preparamos el script para que corra al iniciar nuestro equipo:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
[root@aex-infra ~]# chkconfig –add ddclient

5. Hacemos un poco de limpieza borrando la carpeta que se creo al momento de descomprimir el código fuente en el paso # 1:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# cd ..
[root@aex-infra ~]# rm -rf ddclient-3.7.3/

6. Editamos el archivo de configuración (/etc/ddclient/ddclient.conf) usando nuestro editor de texto favorito (emacs – por supuesto):

Linux console | root@aex-infra:~/
[root@aex-infra ~]# emacs /etc/ddclient/ddclient.conf

Para que quede de la siguiente manera:

use=web
login=usuariodeDynDNS
password=passworddeDynDNS
server=members.dyndns.org,
protocol=dyndns2
nombre.de.dominio

7. Finalmente, iniciamos ddclient (demonio):

Linux console | root@aex-infra:~/
[root@aex-infra ~]# /etc/init.d/ddclient start

Para conocer el estado de tu ddclient puedes usar el siguiente comando:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# ddclient -daemon=0 -debug -verbose -noquiet

El cual te regresara una salida similar a:

DEBUG: proxy =
DEBUG: url = http://checkip.dyndns.org/
DEBUG: server = checkip.dyndns.org
DEBUG: get_ip: using web, http://checkip.dyndns.org/ reports 189.231.143.23

Si lo deseas, puedes agregar el modificar -verbose para obtener una salida mas detallada o puedes usar otra variante donde solo te muestra la información que realmente necesitas conocer:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# ddclient -daemon=0 -verbose -noquiet

Que manda una salida similar a esta:

CONNECT: checkip.dyndns.org
CONNECTED: using HTTP
SENDING: GET / HTTP/1.0
SENDING: Host: checkip.dyndns.org
SENDING: User-Agent: ddclient/3.7.3
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: Content-Type: text/html
RECEIVE: Server: DynDNS-CheckIP/1.0
RECEIVE: Connection: close
RECEIVE: Cache-Control: no-cache
RECEIVE: Pragma: no-cache
RECEIVE: Content-Length: 106
RECEIVE:
RECEIVE: Current IP CheckCurrent IP Address: 189.231.143.23
SUCCESS: jpacheco.net: skipped: IP address was already set to 189.231.143.23.
SUCCESS: dominio.jpacheco.net: skipped: IP address was already set to 189.231.143.23.

Ejecutar YUMEX como root en Fedora

yumex En distribuciones  GNU/Linux basadas en RedHat se cuenta con una herramienta para mantener nuestro sistema actualizado, esta herramienta es conocida como: YUM, esta herramienta de línea de comandos nos permite instalar, actualizar y eliminar paquetes que fueron instalados a partir de un RPM.

Entre las bondades que ofrece YUM se encuentran:

  • Soporta múltiples repositorios
  • Fácil de configurar
  • Cálculo de dependencias
  • Operación rápida
  • Interfaz sencilla, entre otros.

Además de todas las bondades de YUM, no podía faltar la interfaz gráfica para el mismo, esta se conoce como YUM Extender o  YUMex, esta herramienta esta escrita en Python.

La instalación es por demás sencilla, como root, ejecuta el siguiente comando:

Linux console | root@aex-infra:~/
[root@aex-infra ~]# yum -y install

Una vez instalado YUMEx puede invocar su ejecución desde una venta de consola en modo gráfico.

Linux console | root@aex-infra:~/
[root@aex-infra ~]# yumex
Don’t run yumex as root it is unsafe (Use --root to force)
[root@aex-infra ~]# yumex --root

Nota como en este caso, se debe usar el modificador --root para ejecutar yumex como root.

YumEx en ejecución generando la lista de RPMs instalados en el sistema.

YumEx en ejecución generando la lista de RPMs instalados en el sistema.

Enlaces simbólicos o symlinks

Los enlaces simbólicos tambien conocidos como symlinks o symbolic links son un tipo especial de archivo que nos sirve para hacer referencia a un archivo o a otro directorio usando el mismo inodo – los inodo almacenan la información de un objeto dentro de el sistema de archivos, el objeto puede ser un archivo, dispositivo, socket, pipe, etc -.

Crear enlace simbólico

En mi caso, creare un symlink que me permita tener la misma información en dos lugares distintos: Desktop y Documents. Como ya es costumbre lo haremos desde la consola. Primero crearé en Desktop un directorio llamado SymLink, para posteriormente crear el symlink:

Linux console | jpacheco@aex-infra:~/
[jpacheco@aex-infra Desktop]$ mkdir /home/jpacheco/Desktop/SymLink/
[jpacheco@aex-infra Desktop]$ ln -s /home/jpacheco/Desktop/SymLink/ /home/jpacheco/Documents/SymLink

Listemos el contenido de las carpetas Desktop/SymLink y Documents/SymLink para aseguarnos de que el enlance simbólico se creo apropiadamente. Los archivos son los mismos (fecha y tamaño).

Linux console | jpacheco@aex-infra:~/
[jpacheco@aex-infra ~]$ ls -al Desktop/SymLink/
total 12
drwxrwxr-x 2 jpacheco jpacheco 4096 Aug 24 19:46 .
drwxr-xr-x. 3 jpacheco jpacheco 4096 Aug 24 19:45 ..
-rw-rw-r– 1 jpacheco jpacheco 0 Aug 24 19:44 test
-rw-rw-r– 1 jpacheco jpacheco 0 Aug 24 19:46 test3.txt
-rw-rw-r– 1 jpacheco jpacheco 34 Aug 24 19:44 test.txt
[jpacheco@aex-infra ~]$ ls -al Documents/SymLink/
total 12
drwxrwxr-x 2 jpacheco jpacheco 4096 Aug 24 19:46 .
drwxr-xr-x. 3 jpacheco jpacheco 4096 Aug 24 19:45 ..
-rw-rw-r– 1 jpacheco jpacheco 0 Aug 24 19:44 test
-rw-rw-r– 1 jpacheco jpacheco 0 Aug 24 19:46 test3.txt
-rw-rw-r– 1 jpacheco jpacheco 34 Aug 24 19:44 test.txt
[jpacheco@aex-infra ~]$

Eliminar un enlace simbólico

 
Eliminar un enlace simbólico no puede ser mas fácil, solo requerimos ejecutar el comando rm desde el directorio donde se aloja el enlace simbólico, en nuestro ejemplo: ~/Documents/:

Linux console | jpacheco@aex-infra:~/
[jpacheco@aex-infra Desktop]$ mkdir /home/jpacheco/Desktop/SymLink/
[jpacheco@aex-infra Desktop]$ ln -s /home/jpacheco/Desktop/SymLink/ /home/jpacheco/Documents/SymLink

Listemos el contenido de las carpetas Desktop/SymLink y Documents/SymLink para aseguarnos de que el enlance simbólico se creo apropiadamente. Los archivos son los mismos (fecha y tamaño).

Linux console | jpacheco@aex-infra:~/
[jpacheco@aex-infra ~]$ cd Documents
[jpacheco@aex-infra Documents]$ rm SymLink

Es importante que te asegures de no agregar “/” al final del nombre del enlace, si lo haces recibiras un mensaje de error indicando que el directorio no existe.

MySQL como cambiar / asignar la contraseña inicial

Después de que hemos instalado MySQL, lo primero que debemos hacer es cambiar la contraseña por defecto.

En una instalación por defecto el usuario que tendra acceso al control del gestor de bases de datos MySQL es root – no confundir con el usuario root del sistema. La contraseña no esta asignada o es nula null.

Para cambiar la contraseña requerimos de acceso al sistema, via consola (ssh), no necesitamos ser root en el sistema, con lo que podemos hacer el cambio con un usuario no privilegiado. Desde shell, teclea: mysqladmin -u root password, y presiona enter, a continuación teclea la nueva contraseña y confirmala.

Linux console | $ mysqladmin -u root password
$ mysqladmin -u root password
New password:
Confirm new password:

Una vez que la contraseña ya ha sido cambiada exitosamente podrás acceder a la consola de Administración de MySQL, teclea: mysql -u root -p

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:

En caso de que la contraseña que hayas usado no sea correcta recibiras un mensaje de error, como el que se muestra a continuación:

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

Finalmente, si tecleaste la contraseña correcta veras la siguiente pantalla:

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.23 MySQL Community Server (GPL)Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.mysql>

Nota como ahora el prompt cambio a mysql> indicando que estas en la consola de mysql, desde ahi puedes ejecutar comandos de la base de datos, por ejemplo, mostrar todas las bases de datos: show databases

Linux console | $ mysql -u root -p
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.23 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
4 rows in set (0.00 sec)
mysql>

Para salir de la consola de MySQL solo teclea: quit;.

TightVNC Server no responde después de actualizar Fedora Core 15 – INVALIDARGUMENT

Tight VNC Server – es una herramienta de control remoto, con ella puedes ver el escritorio de una computadora remota y ademas controlarlo tal y como si estuvieras usando el ratón y el teclado de esa computadora.

Por alguna extraña razón después de actualizar a Fedora Core 15, el servicio se detenía y solo arrancaba después de reiniciar el equipo, durante un par de días estuve recorriendo el camino de mi oficina al ‘__site__’ dos o tres veces al día hasta que finalmente me decidí a resolver esta situación. Cuando cheque los archivos de log esto fue lo que encontre:

Linux console | $ tail -f /var/log/messages

$ tail -f /var/log/messages

Jul 13 08:49:48 grasshopper systemd[1]: vncserver.service: control process exited, code=exited status=2
Jul 13 08:49:48 grasshopper systemd[1]: Unit vncserver.service entered failed state.

Al revisar el status del servicio VNCServer esto es lo que respondía:

Linux console | $ service vncserver status

$ service vncserver status

vncserver.service – LSB: start|stop|restart|try-restart|status|force-reload vncserver
Loaded: loaded (/etc/rc.d/init.d/vncserver)
Active: failed since Tue, 12 Jul 2011 15:33:35 -0400; 17h ago
Process: 1502 ExecStart=/etc/rc.d/init.d/vncserver start (code=exited, status=2/**INVALIDARGUMENT**)
CGroup: name=systemd:/system/vncserver.service

Al tratar de iniciar (o reiniciar) el servicio recibía otro mensaje de error:

Linux console | $ service vncserver start

$ service vncserver start

Starting vncserver (via systemctl): Job failed. See system logs and ‘systemctl status’ for details. **[FAILED]**

Antes de que se pregunten otra cosa, la configuración de el servidor VNC es muy simple, practicamente la misma que viene por defecto, así que el problema no estaba en el archivo de configuración, lo que hice para solucionar el problema fue:

De la carpeta /tmp/.X11-unix elimine los directorios X1 al X6 (seis usuarios tienen acceso al servidor, aunque no lo usan)

Después de eso, reinicie el servicio y listo:

Linux console | $ service vncserver start

$ service vncserver start

Starting vncserver (via systemctl): **[ OK ]**

Por cierto para realizar todo lo anterior requieres de la cuenta *root* o permisos similares.

Buscar cadenas de texto en varios archivos en sistemas Windows y Linux

Digamos que deseas buscar una cadena de texto entre la multitud de archivos que tienes en tu computadora; ya se que puedes usar el asistente de búsqueda que viene con Windows, pero que tal si lo hacemos desde la consola, perdón desde la interfaz de comandos.

En Windows, usamos el comando: findstr, con los siguientes parametros “cadena_a_buscar” y directorio donde se realizará la búsqueda, por ejemplo: C:\Users\jpacheco\*, veamos el comando:

Command Prompt | findstr /S “cadena_a_buscar” C:\Users\jpacheco\* > resultado.txt
C:\> findstr /S “cadena_a_buscar” C:\Users\jpacheco\* > file.txt

Notén que despues del directorio he agregado un redireccionador “>” y un nombre de archivo, esto con la finalidad de desviar la salida al archivo resultado.txt para posterior análisis.

Obviamente la versión para Linux no podía faltar:

En este caso accedemos a nuestra consola de Linux y usaremos el comando grep, lo que hace este comando es que regresa las líneas (o renglones) que concuerden con una cadena especifica, vamos a realizar la búsqueda de la cadena ‘user’ en el directorio: /var/www/html/survey/config/

Linux console | grep -rnw /var/www/html/survey/config/ -e ‘user’
$ grep -rnw /var/www/html/survey/config/ -e ‘user’

/var/www/html/survey/config/connection.php:$database_user = survey;

Al igual que con el ejemplo de Windows se puede redirigir la salida a un archivo para su posterio análisis, la instrucción con redireccionamiento a continuación:

$ grep -rnw /var/www/html/survey/config/ -e “user” > /home/jpacheco/resultado.txt

Así de fácil.