En nuestro servidor tenemos alojados varios sitios web. Todos los sitios web de nuestro hosting están dentro del directorio /srv/web. Cada sitio web tiene asignado un directorio con el nombre del usuario webmaster del sitio.
Por ejemplo, el webmaster jpedrerom tendrá /srv/web/jpedrerom como directorio de hosting de su sitio web.
Todos los scripts deberán realizar todas las comprobaciones de error necesarias para evitar situaciones de error en tiempo de ejecución. Por ejemplo, si un script debe ser ejecutado por root o necesita obtener valores por parámetro, se deberá comprobar previamente a realizar la función del script.
newSite.sh
Este script recibirá por parámetro el nombre de un nuevo webmaster. El script se debe encargar de realizar todo el proceso de creación de cuenta de usuario, si no existe, creación del directorio del website si no existe y configuración de permisos.
Recuerda, para que el servidor web pueda acceder al website necesita tener permiso de acceso. El servidor web utiliza como usuario y grupo www-data.
El webmaster tendrá todos los permisos sobre el directorio de su sitio web, el servidor http podrá acceder y leer, el resto de usuario no podrá hacer nada.
Todo el proceso del script créalo en una función. Es decir, debemos crear una función dentro del script que, después de haber realizado las comprobaciones de errores, podamos invocar y lleve a cabo la funcionalidad principal del script.
newSiteList.sh
Vamos a crear un script que recibirá por parámetro una lista de webmasters para los que les crearemos un nuevo sitio web. Para ello utilizaremos el script que hemos creado previamente.
newSiteFile.sh
Vamos a crear un script que recibirá por parámetro la ruta de un fichero dónde tendremos información sobre nuevos sitios webs que debemos crear. El fichero puede contener varias líneas con información sobre sitios webs
Cada línea puede contener uno o varios nombres de webmasters separados por comas.
Para cada webmaster en el fichero, debemos crear un nuevo sitio web, utilizando cualquiera de los dos scripts creados en los puntos anteriores.
newSiteInteractive.sh
Vamos a crear un script que cree nuevos website. En esta ocasión lo vamos a hacer de forma interactiva, solicitando al operador que inserte por teclado el nombre del nuevo webmaster.
El script solicitará una y otra vez al operador que inserte un nuevo webmaster con el que trabajar hasta que éste no inserte ningún dato. En ese momento, el script terminará su ejecución.
Utiliza alguno de los scripts ya has creado previamente para llevar a cabo la funcionalidad del script.
backupSite.sh
Este Script se encargará de crear una copia de seguridad del website que se pase por parámetro. La copia de seguridad de los websites se creará dentro del directorio /backup/websites dentro de un directorio con el mismo nombre el website. Dentro de este directorio, vamos a crear un directorio cuyo nombre será la fecha en formato numérico en la que se creó la copia de seguridad.
La fecha en formato numérico será: añomesdia. Por ejemplo, si creamos una copia de seguridad el website jpedrerom la copia de seguridad del directorio /srv/web/jpedrerom se creará en /backup/websites/jpedrerom/231124.
Como siempre, tendremos que controlar posibles errores o situaciones que puedan provocarlos. Por ejemplo, si no existe el directorio de backup de un webmaster, lo crearemos antes de realizar la copia de seguridad.
Podemos copiar los ficheros tal cual desde el directorio website al directorio de copia de seguridad del día, aunque tenemos que mantener los permisos de los ficheros de origen.
Si el directorio de destino de la copia de seguridad existe, porque ya se ha creado una copia de seguridad hoy, sobrescribimos los ficheros.
findDiffFiles.sh
Vamos a crear un script que nos mostrará los ficheros del website que difieren de la versión de la copia de seguridad que le indiquemos.
El script recibirá por parámetro el nombre del webmaster cuyo sitio web vamos a revisar.
Mostramos la lista de copias de seguridad que tiene disponibles para su sitio web. Podemos obtener esta información del directorio de copias de seguridad del sitio web en /backup/websites.
Si no hay ninguna copia de seguridad todavía, mostrará un mensaje de advertencia y terminamos la ejecución del script.
Ahora solicitamos al usuario que escriba el nombre de la copia de seguridad para la que quiere realizar la comprobación. Recuerda, el nombre de la copia de seguridad tendrá el formato añomesdia.
Con esta información vamos a comparar fichero a fichero, desde el sitio web actual, que estará por ejemplo en /srv/web/jpedrerom, al directorio de backups, que puede ser por ejemplo /backup/websites/jpedrerom/231124.
El objetivo es que para cada fichero del directorio web del usuario, comprobemos si ese fichero existe en la copia de seguridad, si no existe mostramos un mensaje, si existe, comprobamos si son diferentes o no usando el comando diff. Si son diferentes, mostramos un mensaje. Si son iguales, no hacemos nada.
Dejar una respuesta