Introducción
Amazon Simple Storage Service (Amazon S3) es un dispositivo de almacenamiento de objetos basado en la nube. Es un almacenamiento de bajo costo que se usa ampliamente para copias de seguridad o contenido de sitios web estáticos.
Puede utilizar la utilidad de línea de comandos de AWSCLI para administrar el depósito s3 y su contenido. En este tutorial, aprenderá a realizar una copia de seguridad de un sitio web en el depósito de Amazon s3 mediante un script de shell.
Instale la CLI de AWS
Los paquetes de AWS CLI están disponibles en repositorios predeterminados en la mayoría de los sistemas Linux. Puede instalarlo ejecutando uno de los siguientes comandos.
Fedora, Redhat y CentOS:
sudo dnf install awscli
Ubuntu, Debian y Linux Mint:
sudo apt install awscli
Una vez finalizada la instalación, verifique la versión de awscli ejecutando este comando:
aws --version
Crear un script de shell
Ahora cree un archivo de script de shell en su sistema y agregue el siguiente contenido.
Para este tutorial, creé el archivo usando el editor nano:
nano /scripts/s3WebsiteBackup.sh
Agrega el siguiente contenido:
#/usr/bin/env bash
########################################################
##
## Shell script to archive website code and upload
## to S3 bucket.
##
##
########################################################
S3_BUCKET_NAME=""
DIR_TO_BACKUP="/var/www/html"
BACKUP_FILENAME='website'
TODAY=`date +%Y%m%d`
YY=`date +%Y`
MM=`date +%m`
AWSCMD="/usr/local/bin/aws"
TARCMD="/usr/bin/tar"
${TARCMD} czf /tmp/${BACKUP_FILENAME}-${TODAY}.tar.gz
${AWSCMD} cp /tmp/${BACKUP_FILENAME}-${TODAY}.tar.gz s3://${S3_BUCKET_NAME}/${YY}/${MM}/
if [ $? -eq 0 ]; then
echo "Backup successfully uploaded to s3 bucket"
else
echo "Error in s3 backup"
fi
Asegúrese de actualizar S3_BUCKET_NAME
y DIR_TO_BACKUP
en el script. También puede cambiar el nombre del archivo de copia de seguridad en la variable BACKUP_FILENAME
.
Guarde el archivo y ciérrelo. Ahora tiene un script de shell para hacer una copia de seguridad del contenido del sitio web en depósitos s3.
Ejecute el script de shell
Haga que el script de shell sea ejecutable ejecutando el siguiente comando:
chmod +x /scripts/s3WebsiteBackup.sh
Ahora puede probar el script ejecutándolo manualmente:
bash /scripts/s3WebsiteBackup.sh
Si tiene éxito, las copias de seguridad se cargarán en el depósito s3. Que puedes ver usando este comando:
aws s3 ls
Programar el script en Cron
Luego, programe su secuencia de comandos en crontab para automatizar este trabajo. Para cambiar el crontab del usuario actual, escriba:
crontab -e
Agregue la siguiente entrada al crontab:
0 2 * * * bash /scripts/s3WebsiteBackup.sh
Guarde el archivo y cierre el editor.
Conclusión
Este tutorial proporciona un script de shell para hacer una copia de seguridad del contenido del sitio web en el depósito de S3. También incluye instrucciones para ejecutar este script.