… mucho más rápidas y versátiles que el interfaz web.
Cuanto más utilizo ownCloud más necesario se me hace emplear herramientas de administración desde la consola. No es que no pueda utilizar el navegador, pero hay cosas más rápidas y más efectivas desde el shell.
Las utilidades que se incluyen en ownCloud para realizar estas tareas precisan de un envoltorio para emplearse con más comodidad por lo siguiente:
- Están instaladas bajo el directorio de owncloud, que suele ser /var/www/owncloud, aunque hay algunas un poco especiales.
- Están escritas en lenguaje PHP (al igual que el resto de la aplicación).
- Deben funcionar bajo el usuario del servidor web: www-data (al menos en Debian).
- Necesitan un pase de parámetros.
El envoltorio, pues, tendrá que lidiar con ello de esta forma:
#!/bin/bash
# Variables
VERSION=0.5
OWNCLOUD_DIR=/var/www/owncloud
OWNCLOUD_USER=www-data
OWNCLOUD_FILE=$(basename $0)
OWNCLOUD_ENGINE=$(which php)
ROOT_ENGINE=$(which sudo)
# Parámetros
ARGS=$*
# Selección de aplicación
case $OWNCLOUD_FILE in
occ*)
OWNCLOUD_FILE="occ"
;;
occ_updater*)
OWNCLOUD_FILE="updater/application.php"
;;
occ_cron*)
OWNCLOUD_FILE="cron.php"
;;
*)
echo "$0: aplicación owncloud desconocida" >&2
exit 3
;;
esac
OWNCLOUD_APP="${OWNCLOUD_DIR}/${OWNCLOUD_FILE}"
# Comprobaciones
if [ ! -x $OWNCLOUD_ENGINE ]; then
echo "$0: no existe el programa $OWNCLOUD_ENGINE" >&2
exit 2
fi
if [ ! -f $OWNCLOUD_APP ]; then
echo "$0: no existe el archivo $OWNCLOUD_APP" >&2
exit 1
fi
# Ejecución
${ROOT_ENGINE} -u $OWNCLOUD_USER $OWNCLOUD_ENGINE -f $OWNCLOUD_APP $ARGS
El programa, como puede verse, se limita a construir una línea de ejecución con los parámetros convenientemente traducidos y a efectuar algunas verificaciones.
Como resulta que hay programas en ownCloud que están bajo el directorio principal y otros que se sitúan más abajo, además de que puede existir una colisión de nombres con otros programas en el sistema, he decidido renombrar algunos de ellos como se muestra aquí:
- occ -> /var/www/owncloud/occ.php.
- occ_cron -> /var/www/owncloud/cron.php.
- occ_updater -> /var/www/owncloud/updater/application.php.
Recetario para occ (ownCloud console)
Útiles generales
statusenseña el estado de la instalación (modo mantenimiento, versión, …).checkcomprueba las dependencias del entorno del servidor.helpmuestra la ayuda del programa.help commandhace lo mismo pero para una orden concreta.
listdespliega la lista de órdenes del programa occ.upgradeefectúa las tareas tras una actualización a una nueva versión (que debe estar instalada).
Mantenimiento
maintenance:modepara consultar el estado:maintenance:mode --onpara activarlo.maintenance:mode --offpara desactivarlo.
maintenance:mimetype:maintenance:mimetype:update-dbactualiza la base de datos de tipos mime (para identificar contenido de archivos) y el caché de los mismos.maintenance:mimetype:update-jsactualiza el archivomimetypelist.js.
maintenance:repairintenta reparar la instalación.maintenance:singleuseractiva el modo mono-usuario.
Gestión de usuarios
user:addañade un nuevo usuario.user:deleteborra un usuario.user:reportenseña cuántos usuarios tienen acceso y de dónde procede.user:resetpasswordreinicia la contraseña de un usuario.user:lastseenmuestra la última conexión de un usuario.
Gestionar aplicaciones
app:listobtiene una lista de aplicaciones, activas e inactivas.app:enablepara activar una aplicación.app:disablepara lo contrario.
Sobre la configuración
config:listpara obtener toda la configuración, aplicaciones incluídas, en formato JSON.config:importpara importar una configuración (previamente obtenida con el anterior).
Operaciones con DAV
dav:create-addressbookpermite crear una agenda para un usuario con un nombre concreto.dav:create-calendarigual pero con un calendario.
Operaciones con archivos
files:scanbusca nuevos archivos y actualiza el caché de los mismos.files:cleanuplimpia el caché de archivos.files:transfer-ownershiptransfiere la propiedad de archivos y carpetas de un usuario a otro, incluyendo los compartidos.
La búsqueda de nuevos archivos (files:scan) los añade al caché y puede realizarse con todos los archivos, sólo los de uno o varios usuarios e incluso se les puede limitar a una ruta concreta.
Comprobando la integridad del código
Desde la versión 9.0 de ownCloud el código y las aplicaciones se firman con una clave para asegurar su estabilidad y proteger el entorno.
integrity:check-corepara verificar que el núcleo de ownCloud es correcto.integrity:check-apppara lo mismo pero sólo con una aplicación.
Gestionando el registro de actividades
log:owncloudmuestra los parámetros actuales del registro.log:managepermite manipular el registro.