gentoo linux, java, software libre y otras hierbas
Ene, 26 2010 - 11:23 pm

Códigos de shell script útiles en cualquier programa

shell scriptA continuación voy a poner algunos snippets de código de shell script que me han sido siempre útiles cuando escribo algún script. La mayoríá funcinoan en cualquier shell de Unix, aunque algunos requieren que sean ejecutados por Bash.

Evitar que usuarios sin privilegios ejecuten el script

Algunos scripts realizan tareas administrativas por lo cual podríamos querer que solo el usuario root ejecute el script. En ese caso podemos usar algo como esto:

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Este script debe ser ejecutado por el usuario root" 1>&2
    exit 1
fi

Permitir la ejecución del script solo a un usuario específico

De manera similar al código anterior, podríamos querer que solo un usuario específico ejecute el script. Lo hacemos así:

#!/bin/bash
AUTHORIZED_USER="usuario_permitido"
if [ $USER != $AUTHORIZED_USER ]; then
    echo "Este script debe ser ejecutado por el usuario $AUTHORIZED_USER" 1>&2
    exit 1
fi

Verificar que un servicio/proceso se está ejecutando

Si queremos saber si existen procesos de algún servicio o programa ejecutándose podríamos usar este script (en este caso verifica que el demonio de Apache esté corriendo):

Leer el resto de la entrada…

9 Comentarios | deja el tuyo

Dic, 29 2009 - 8:22 pm

Redimensionar partición NTFS [consola]

Entre tanto trabajo, estudio y procrastinación me queda poco tiempo para publicar cosas… así que al menos iré poniendo pequeños tips que considero útiles. En esta ocasión un tip simple, redimensionar una partición con NTFS desde la consola. Para ello usaremos el comando ntfsresize que viene dentro del paquete ntfsprogs (Gentoo/Debian/Arch/FreeBSD/) o ntfstools (Ubuntu): http://www.linux-ntfs.org/

Instalación

Gentoo:

emerge -av ntfsprogs

FreeBSD:

cd /usr/ports/sysutils/ntfsprogs
make && make install clean

Ubuntu:

aptitude install ntfstools

Debian:

apt-get install ntfsprogs

Arch:

pacman -S ntfsprogs

Uso…

El uso es bastante simple… para inspeccionar una partición, conocer cuanto espacio disponible tiene y cuanto es el mínimo/máximo que podemos asignarle ejecutamos lo siguiente:

ntfsresize -if /dev/sda2

Donde /dev/sda2 corresponde a la partición que queremos tratar. Supongamos que, por ejemplo, queremos redimensionar la partición a 34GB, ejecutamos lo siguiente para hacer un test de solo lectura:

ntfsresize -n -s 34G /dev/sda2

El flag -n indica que NO se harán cambios reales sobre el disco, mientras que -s especifica el nuevo tamaño (k kilobytes, M para megabytes, G gigabytes). Si todo va bien con el test procedemos con el cambio real:

ntfsresize -f -s 34G /dev/sda2

5 Comentarios | deja el tuyo

Sep, 29 2009 - 3:21 am

Instalar/configurar un servidor Git + interfaz web

git¡Hola a todos! Ya que me encuentro haciendo un proyecto para la Universidad, he decidido esta vez probar Git y dejar a un lado mi querido Subversion. Git es básicamente un sistema de control de versiones, creado por Linus Torvalds, y es usado en proyectos grandes como el Kernel de Linux. Así que he preparado una pequeña guía de instalación y configuración de Git, además de la interfaz web del mismo, lo cual nos permite ver los cambios del proyecto de una manera más amena.

Para este mini proyecto he instalado el servidor en una máquina virtual corriendo Debian 5. El motivo de dejar mi Gentoo por un rato es porque ya es de madrugada y necesitaba que la instalación fuera más rápida; además no me gusta instalar cosas que más adelante no necesitaré: para eso está la virtualización. ¡Basta de rodeos, vamos al grano!

Instalando los paquetes necesarios

Instalaremos Apache2, la base de git y los módulos web de git (y el server de ssh para que los clientes se conecten):

# aptitude install apache2 git-core gitweb openssh-server

Ahora creamos los directorios /var/cache/git (el repositorio git) y /var/www/git para el gitweb.cgi:

# mkdir /var/www/git
# [ -d "/var/cache/git" ] || sudo mkdir /var/cache/git

En nuestro ejemplo, el directorio raiz del apache es /var/www; ahora debemos crear un archivo de configuración de Apache para el git:

# nano /etc/apache2/conf.d/git

Ponemos lo siguiente adentro:

<Directory /var/www/git>
   Allow from all
   AllowOverride all
   Order allow,deny
   Options ExecCGI
   <Files gitweb.cgi>
   SetHandler cgi-script
   </Files>
</Directory>
DirectoryIndex gitweb.cgi
SetEnv  GITWEB_CONFIG  /etc/gitweb.conf

Ahora movemos los archivos gitweb.cgi, .png y .css de git a /var/www/git: Leer el resto de la entrada…

3 Comentarios | deja el tuyo

« Entradas anteriores