Restaurar Menu de Aplicaciones y System Tray en GNOME


Si en algún momento les pasa que pierden la barra de programas del GNOME completa, pueden agregarla nuevamente de la siguiente manera:

Sobre la barra inferior  de programas hacemos click con el boton derecho del mouse -> “New  Panel” esto agregará la barra de menú en la parte superior del escritorio.
En esta nueva barra, nuevamente click con el boton derecho del mouse -> Add to Panel -> Menu Bar (A custom menu bar)
En esta nueva barra, nuevamente click con el boton derecho del mouse -> Add to Panel -> Notification Area
En esta nueva barra, nuevamente click con el boton derecho del mouse -> Add to Panel -> Clock

Con esto la barra ha quedado igual a la original en cualquier instalación de Fedora.

Crear un nuevo device.map para el GRUB


Puede que luego de añadir discos necesitemos crear nuevamente el mapa de dispositivos del GRUB:

Para eso primero renombramos el map existente:
# mv /boot/grub/device.map /boot/grub/device.map.bak

Generamos uno nuevo:
# grub –device-map=/boot/grub/device.map
esto nos mostrara el prompt de GRUB, del que salimos con quit   y tendremos listo el nuevo device.map

Creando RAID 1 por software


En un par de discos nuevos en un servidor vamos a crear un
RAID 1 (espejo) para tener algo de tolerancia a fallos:

Identificamos los discos/dispositivos a utilizar:
/dev/sdc
/dev/hdc

En uno de los discos debemos crear la particion:

Creamos partición de tipo raid en la totalidad del disco:
#fdisk /dev/sdc
new partition: n
primary partition: p
particion number: 1
First cylinder: 1
Last cylinder: (last)

Change partition type: t
Hex code: fd (Linux raid autodetect)

grabamos cambios y salimos: w

Creamos el dispositivo RAID:
# mdadm –create –level=1 –raid-devices=2 /dev/md1 /dev/sdc /dev/hdc

Podemos monitorear el proceso de espejado de los discos con:
# cat /proc/mdstat

o

# mdadm –detail /dev/md1

Formateamos file system ext3:
#mkfs.ext3 /dev/md1

Armamos el montaje del raid:
Creamos el directorio de montaje:
# mkdir /data

Editamos el /etc/fstab y agregamos el punto de montaje:
/dev/md1                /data                   ext3    defaults        1 1

Releemos el fstab para verificar y montar de acuerdo a la nueva entrada:
# mount -a

Creamos la entrada en el /etc/mdadm.conf para definir el nuevo raid:
# mdadm –examine –scan  >> /etc/mdadm.conf

Ejecutar SQL Server Stored Procedures desde PHP bajo Linux


Tratando de ejecutar Stored Procedures existentes en una base de datos SQL Server desde PHP bajo Linux, me encontré con el problema de que al querer ejecutar un stored procedure simple, sin parámetros, obtenía siempre el mismo error: “stored procedure execution failed”.
La sentencia de llamada era muy simple:

$conn = mssql_connect($host, $user, $pass);
mssql_select_db(‘nombredb’, $conn);
$proc = mssql_init(‘nombre_proc’, $conn);
$proc_result = mssql_execute($proc);

La solución es hacer una declaración explícita de los datos del servidor SQL Server en el archivo /etc/freetds.org de la siguiente manera:
[servidor]
        host =xxx.xxx.xxx.xxx
        port = 1433
        tds version = 8.0

Error “Failed to get lock using fcntl(2)” en Evolution


Bueno, la verdad es que suena horrible este error, dado que la funciónm fcnl es utilizada a nivel filesystem para administrar lockeo o bloqueo los archivos que etán siendo accedidos.

La cuestión es que un equipo donde se hallan configurados los homes centralizados a través de NFS, comenzó a dar este error al intentar abrir cualquier correo dentro del evolution.
Dado que la red en ese momento estaba funcionando correctamente así como los servicios de NFS y los usuarios con homes compartidos se estaba logueando correctamente, mi primer intento de solución fué eliminar los *.index * en /home/usuario/.evolution/mail/local a fin de que al abrir el evolution se reconstruyan los indices…

Pero sin resultado positivo.

Así que aplicamos el plan B: realicé un respaldo completo de la cuenta del evolution a través del menú “Backup Settings”. Eliminé por completo los archivos de datos del evolution. Desinstalé el evolution. Lo volví a instalar… y restauré el backup de la cuenta de usuario.
Resultado ? volvió a funcionar correctamente.

Mi conclusión: en algún lado, quedó algún archivo de configuración del evolution con los datos erroneos ante algún problema de red.

Si alguien le encontró una solución mas facil… soy todo oidos…
Si alguien sabe la causa exacta de este problem…también soy todo oídos…

Restaurar menu de aplicaciones de gnome / Restore gnome applications menu


Resulta que en un equipo, el menú “Aplicaciones” no mostraba su contenido. Los menúes “Lugares” y “Sistema” funcionaban correctamente mostrando su contenido.
Luego de buscar un rato encontré que para restaurar el menú de aplicaciones de gnome a su contenido original, lo que hay que hacer es eliminar el archivo:
/home/usuario/.config/menus/applications.menu ó copiarlo desde otro equipo…
en mi caso particular, el archivo estaba en tamaño 0 bytes, probablemente por algún problema de red con los homes compartidos por NFS.

Script de notificación de uso de quota de disco / Disk Quota Notification Script


Estuve un rato buscando si alguien se había tomado el trabajito de armar un script para enviar un mail a los usuarios cuando estos estuvieran superando la quota de disco (al menos la SOFT quota) pero no econtré nada similar, así que no me quedó otra que hacerlo… Aquí dejo mi aporte para los que lo necesiten:

Lo que hace es recorrer los usuarios existentes en el /etc/passwd con UID >= 500. Esto es para Linux CentOS, Fedora, Redhat, pero pueden modificarlo para otros linuxes.
Para cada uno de ellos utiliza el comando repquota y compara los campos soft y hard para calcular el espacio utilizado.
En base a esto envía un mail de notificación al usuario y otro a sistemas para que nos enteremos que determinado usuario tiene problemas de quota.

#!/bin/sh
#hvivani. 20101217
#verifica quotas de usuario en filesystem y envía mail notificando exceso de soft quota.

for name in $(awk -F: ‘($3>=500) && ($3!=65534) {print $1}’ /etc/passwd)
do
      limiteSoft=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $4}’`
      usado=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $3}’`
      limiteHard=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $5}’`

      ### si el limite soft no es nulo
      if [ -n “$limiteSoft” ]
      then
         ### si el limite soft supera el espacio utilizado
         if [ “$usado” -ge “$limiteSoft” ]
         then
            nota=”Usuario: $name, Ud. esta excediendo su espacio en disco: Limite: $limiteSoft Bytes. Utilizado: $usado Bytes. Por favor, libere espacio en su carpeta personal o sistema de correo.”
            echo $nota | mail -s “ATENCION: Uso de Disco !!” $name@dominio.com.ar
            echo “El usuario $name ha superado SOFT quota. Limite: $limiteSoft Bytes. Utilizado: $usado Bytes.” | mail -s “ATENCION: Uso de Disco $name !!” sistemas@dominio.com.ar
         fi
         ### si el limite hard supera el espacio utilizado
         if [ “$usado” -ge “$limiteHard” ]
         then
            nota=”Usuario $name, Ud, esta excediendo su espacio en disco: Limite: $limiteHard Bytes. Utilizado: $usado Bytes. No podrá escribir en su sistema hasta que libere espacio en su carpeta personal o sistema de correo.”
            echo $nota | mail -s “Uso de Disco !!” $name@dominio.com.ar
            echo “El usuario $name ha superado HARD quota. Limite: $limiteSoft Bytes. Utilizado: $usado Bytes.” | mail -s “ATENCION: Uso de Disco $name !!” sistemas@dominio.com.ar
         fi
      fi

done

Configurar sendmail con servidor smtp externo / Configure sendmail using smarthost


Dado que varias veces me he topado con la necesidad de configurar un sendmail en un servidor para que utilice un smtp externo, aqui lo agendamos:

Necesitaremos instalar el paquete sendmail-cf:
# yum install sendmail-cf

cambiamos el /etc/mail/sendmail.mc:
descomentamos la línea del SMARTHOST y agregamos un FEATURE:
define(`SMART_HOST’, `your-smtp-server’)
FEATURE(authinfo)dnl 

Recompilamos el sendmal.mc:
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 

Creamos o editamos el /etc/mail/authinfo con la siguiente linea:
AuthInfo: “U:” “P:” “M:DIGEST-MD5”

Creamos el authinfo.db:
# makemap hash /etc/mail/authinfo < /etc/mail/authinfo

Restarteamos el sendmail:
# /sbin/service sendmail restart 
Un detalle importante, si reciben como respuesta el mensaje:
553 sorry, your envelope sender domain must exist (#5.7.1)

Es porque no está correctamente seteado el hostname en el equipo. Pueden verificarlo con el comando:
# hostname -f