{"id":1888,"date":"2016-10-14T07:46:56","date_gmt":"2016-10-14T07:46:56","guid":{"rendered":"http:\/\/esferas.org\/msqlu\/?p=1888"},"modified":"2016-10-14T08:35:32","modified_gmt":"2016-10-14T08:35:32","slug":"herramientas-de-consola-para-owncloud","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2016\/10\/14\/herramientas-de-consola-para-owncloud\/","title":{"rendered":"Herramientas de consola para owncloud &#8230;"},"content":{"rendered":"<p>&#8230; mucho m\u00e1s r\u00e1pidas y vers\u00e1tiles que el interfaz web.<\/p>\n<p><!--more--><\/p>\n<p>Cuanto m\u00e1s utilizo <em>ownCloud<\/em> m\u00e1s necesario se me hace emplear herramientas de administraci\u00f3n desde la consola. No es que no pueda utilizar el navegador, pero hay cosas m\u00e1s r\u00e1pidas y m\u00e1s efectivas desde el <em>shell<\/em>.<\/p>\n<p>Las utilidades que se incluyen en <em>ownCloud<\/em> para realizar estas tareas precisan de un envoltorio para emplearse con m\u00e1s comodidad por lo siguiente:<\/p>\n<ol>\n<li>Est\u00e1n instaladas bajo el directorio de owncloud, que suele ser <em>\/var\/www\/owncloud<\/em>, aunque hay algunas un poco especiales.<\/li>\n<li>Est\u00e1n escritas en lenguaje <em>PHP<\/em> (al igual que el resto de la aplicaci\u00f3n).<\/li>\n<li>Deben funcionar bajo el usuario del servidor web: <em>www-data<\/em> (al menos en Debian).<\/li>\n<li>Necesitan un pase de par\u00e1metros.<\/li>\n<\/ol>\n<p>El envoltorio, pues, tendr\u00e1 que lidiar con ello de esta forma:<\/p>\n<pre class=\"lang:sh decode:true \">#!\/bin\/bash \r\n\r\n# Variables\r\nVERSION=0.5\r\nOWNCLOUD_DIR=\/var\/www\/owncloud\r\nOWNCLOUD_USER=www-data\r\nOWNCLOUD_FILE=$(basename $0)\r\n\r\nOWNCLOUD_ENGINE=$(which php)\r\nROOT_ENGINE=$(which sudo)\r\n\r\n# Par\u00e1metros\r\nARGS=$*\r\n\r\n# Selecci\u00f3n de aplicaci\u00f3n \r\ncase $OWNCLOUD_FILE in\r\nocc*)\r\n    OWNCLOUD_FILE=\"occ\"\r\n    ;;\r\nocc_updater*)\r\n    OWNCLOUD_FILE=\"updater\/application.php\"\r\n    ;;\r\nocc_cron*)\r\n    OWNCLOUD_FILE=\"cron.php\"\r\n    ;;\r\n*)\r\n    echo \"$0: aplicaci\u00f3n owncloud desconocida\" &gt;&amp;2\r\n    exit 3\r\n    ;;\r\nesac\r\nOWNCLOUD_APP=\"${OWNCLOUD_DIR}\/${OWNCLOUD_FILE}\"\r\n\r\n# Comprobaciones\r\nif [ ! -x $OWNCLOUD_ENGINE ]; then \r\n    echo \"$0: no existe el programa $OWNCLOUD_ENGINE\" &gt;&amp;2\r\n    exit 2\r\nfi\r\nif [ ! -f $OWNCLOUD_APP ]; then\r\n    echo \"$0: no existe el archivo $OWNCLOUD_APP\" &gt;&amp;2\r\n    exit 1\r\nfi \r\n\r\n# Ejecuci\u00f3n\r\n${ROOT_ENGINE} -u $OWNCLOUD_USER $OWNCLOUD_ENGINE -f $OWNCLOUD_APP $ARGS\r\n\r\n<\/pre>\n<p>El <a href=\"https:\/\/git.astillas.net\/victor\/myowncloudtools.git\" target=\"_blank\">programa<\/a>, como puede verse, se limita a construir una l\u00ednea de ejecuci\u00f3n con los par\u00e1metros convenientemente traducidos y a efectuar algunas verificaciones.<\/p>\n<p>Como resulta que hay programas en <em>ownClou<\/em><em>d<\/em> que est\u00e1n bajo el directorio principal y otros que se sit\u00faan m\u00e1s abajo, adem\u00e1s de que puede existir una colisi\u00f3n de nombres con otros programas en el sistema, he decidido renombrar algunos de ellos como se muestra aqu\u00ed:<\/p>\n<ul>\n<li><em>occ<\/em> -&gt; <em>\/var\/www\/owncloud\/occ.php<\/em>.<\/li>\n<li><em>occ_cron<\/em> -&gt; <em>\/var\/www\/owncloud<\/em><em>\/cron.php<\/em>.<\/li>\n<li><em>occ_updater<\/em> -&gt; <em>\/var\/www\/owncloud\/updater\/application.php<\/em>.<\/li>\n<\/ul>\n<h3>Recetario para occ (ownCloud console)<\/h3>\n<h4>\u00datiles generales<\/h4>\n<ul>\n<li><code>status<\/code> ense\u00f1a el estado de la instalaci\u00f3n (modo mantenimiento, versi\u00f3n, &#8230;).<\/li>\n<li><code>check<\/code> comprueba las dependencias del entorno del servidor.<\/li>\n<li><code>help<\/code> muestra la ayuda del programa.\n<ul>\n<li><code>help command<\/code> hace lo mismo pero para una orden concreta.<\/li>\n<\/ul>\n<\/li>\n<li><code>list<\/code> despliega la lista de \u00f3rdenes del programa <em>occ<\/em>.<\/li>\n<li><code>upgrade<\/code> efect\u00faa las tareas tras una actualizaci\u00f3n a una nueva versi\u00f3n (que debe estar instalada).<\/li>\n<\/ul>\n<h4>Mantenimiento<\/h4>\n<ul>\n<li><code>maintenance:mode<\/code> para consultar el estado:\n<ul>\n<li><code>maintenance:mode --on <\/code> para activarlo.<\/li>\n<li><code>maintenance:mode --off<\/code> para desactivarlo.<\/li>\n<\/ul>\n<\/li>\n<li><code>maintenance:mimetype<\/code>:\n<ul>\n<li><code>maintenance:mimetype:update-db<\/code> actualiza la base de datos de tipos mime (para identificar contenido de archivos) y el cach\u00e9 de los mismos.<\/li>\n<li><code>maintenance:mimetype:update-js<\/code> actualiza el archivo <code>mimetypelist.js<\/code>.<\/li>\n<\/ul>\n<\/li>\n<li><code>maintenance:repair<\/code> intenta reparar la instalaci\u00f3n.<\/li>\n<li><code>maintenance:singleuser<\/code> activa el modo mono-usuario.<\/li>\n<\/ul>\n<h4>Gesti\u00f3n de usuarios<\/h4>\n<ul>\n<li><code>user:add<\/code> a\u00f1ade un nuevo usuario.<\/li>\n<li><code>user:delete<\/code> borra un usuario.<\/li>\n<li><code>user:report<\/code> ense\u00f1a cu\u00e1ntos usuarios tienen acceso y de d\u00f3nde procede.<\/li>\n<li><code>user:resetpassword<\/code> reinicia la contrase\u00f1a de un usuario.<\/li>\n<li><code>user:lastseen<\/code> muestra la \u00faltima conexi\u00f3n de un usuario.<\/li>\n<\/ul>\n<h4>Gestionar aplicaciones<\/h4>\n<ul>\n<li><code>app:list<\/code> obtiene una lista de aplicaciones, activas e inactivas.<\/li>\n<li><code>app:enable<\/code> para activar una aplicaci\u00f3n.<\/li>\n<li><code>app:disable<\/code> para lo contrario.<\/li>\n<\/ul>\n<h4>Sobre la configuraci\u00f3n<\/h4>\n<ul>\n<li><code>config:list<\/code> para obtener toda la configuraci\u00f3n, aplicaciones inclu\u00eddas, en formato JSON.<\/li>\n<li><code>config:import<\/code> para importar una configuraci\u00f3n (previamente obtenida con el anterior).<\/li>\n<\/ul>\n<h4>Operaciones con DAV<\/h4>\n<ul>\n<li><code>dav:create-addressbook<\/code> permite crear una agenda para un usuario con un nombre concreto.<\/li>\n<li><code>dav:create-calendar<\/code> igual pero con un calendario.<\/li>\n<\/ul>\n<h4>Operaciones con archivos<\/h4>\n<ul>\n<li><code>files:scan<\/code> busca nuevos archivos y actualiza el cach\u00e9 de los mismos.<\/li>\n<li><code>files:cleanup<\/code> limpia el cach\u00e9 de archivos.<\/li>\n<li><code>files:transfer-ownership<\/code> transfiere la propiedad de archivos y carpetas de un usuario a otro, incluyendo los compartidos.<\/li>\n<\/ul>\n<p>La b\u00fasqueda de nuevos archivos (<code>files:scan<\/code>) los a\u00f1ade al cach\u00e9 y puede realizarse con todos los archivos, s\u00f3lo los de uno o varios usuarios e incluso se les puede limitar a una ruta concreta.<\/p>\n<h4>Comprobando la integridad del c\u00f3digo<\/h4>\n<p>Desde la versi\u00f3n 9.0 de <em>ownCloud<\/em> el c\u00f3digo y las aplicaciones se firman con una clave para asegurar su estabilidad y proteger el entorno.<\/p>\n<ul>\n<li><code>integrity:check-core<\/code> para verificar que el n\u00facleo de <em>ownCloud<\/em> es correcto.<\/li>\n<li><code>integrity:check-app<\/code> para lo mismo pero s\u00f3lo con una aplicaci\u00f3n.<\/li>\n<\/ul>\n<h4>Gestionando el registro de actividades<\/h4>\n<ul>\n<li><code>log:owncloud<\/code> muestra los par\u00e1metros actuales del registro.<\/li>\n<li><code>log:manage<\/code> permite manipular el registro.<\/li>\n<\/ul>\n<h3>Enlaces y referencias<\/h3>\n<ul>\n<li><a href=\"https:\/\/doc.owncloud.org\/server\/9.1\/admin_manual\/configuration_server\/occ_command.html\">Uso del programa <em>occ.php<\/em> para la versi\u00f3n 9.0 y superiores<\/a>.<\/li>\n<li><a href=\"https:\/\/doc.owncloud.org\/server\/9.1\/admin_manual\/maintenance\/update.html\">Uso del programa <em>updater\/application.php<\/em> para la versi\u00f3n 9.0 y superiores<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; mucho m\u00e1s r\u00e1pidas y vers\u00e1tiles que el interfaz web.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[2],"tags":[18,41,108],"class_list":["post-1888","post","type-post","status-publish","format-standard","hentry","category-software","tag-administracion-de-sistemas","tag-debian","tag-owncloud"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/1888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=1888"}],"version-history":[{"count":0,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/1888\/revisions"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=1888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=1888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=1888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}