inicio repositorio gitea

This commit is contained in:
David Itehua Xalamihua 2025-06-15 15:47:55 -06:00
commit 1e7c190f1b
2 changed files with 122 additions and 0 deletions

78
README.md Normal file
View File

@ -0,0 +1,78 @@
### ENTORNO PREPARATIVO DE SCRIPT BACKUP FORMHA Y FOLDER UPLOADS
#### Con permisos de administrador (NO RECOMENDADO)
```bash
# 1.- EDITAR EL ARCHIVO .pgpass
sudo nano /root/.pgpass
# 2.- Añadir la linea con el siguiente formto: host:puerto:base_de_datos:usuario:contraseña EJEMPLO:
127.0.0.1:5432:db_ejemplo:usr1:pswdUsr1
# 3.- Guardas y cierras
```
Cambiamos los permisos del archivo .pgpass:
```bash
sudo chmod 600 /root/.pgpass
```
##### 🔐 **Cambia los permisos del archivo `/root/.pgpass` a `600`**:
- `sudo`: ejecuta el comando con privilegios de **superusuario**, ya que estás modificando un archivo dentro de `/root`.
- `chmod 600`: establece los **permisos del archivo** para que **solo el propietario pueda leer y escribirlo**.
- `/root/.pgpass`: es el **archivo de contraseñas de PostgreSQL** que se usa para evitar que `pg_dump`, `psql`, etc. pidan contraseña al ejecutarse.
##### 🧾 ¿Qué significa `600`?
- **`6`** = lectura (`r`) + escritura (`w`) = `rw-` para el **dueño (root)**.
- **`0`** = sin permisos para **grupo**.
- **`0`** = sin permisos para **otros usuarios**.
Luego le das permisos de ejecución al script **`formha.bu.sh`** mediante el comando:
```bash
sudo chmod +x /ruta/al/script/bu_formha.sh
```
Creas la tarea en **crontab**:
```bash
sudo crontab -e
```
Añades la línea donde ejecutar la tarea, en este caso he decidido que cada viernes a las 7 pm se haga el respaldo:
```bash
0 19 * * 5 /ruta/al/script/bu_formha.sh
```
#### Sin permisos de administrador
Edita el archivo .pgpass
```bash
# 1.- EDITAR EL ARCHIVO .pgpass
nano /home/usr_name/.pgpass
# 2.- Añadir la linea con el siguiente formto: host:puerto:base_de_datos:usuario:contraseña EJEMPLO:
127.0.0.1:5432:db_ejemplo:usr1:pswdUsr1
# 3.- Guardas y cierras
```
Cambiamos los permisos del archivo .pgpass:
```bash
chmod 600 /home/usr_name/.pgpass
```
Luego le das permisos de ejecución al script **`formha.bu.sh`** mediante el comando:
```bash
chmod +x /ruta/al/script/bu_formha.sh
```
Creas la tarea en **crontab**:
```bash
crontab -e
```
Añades la línea donde ejecutar la tarea, en este caso he decidido que cada viernes a las 7 pm se haga el respaldo:
```bash
0 19 * * 5 /ruta/al/script/bu_formha.sh
```

44
formha_bu.sh Normal file
View File

@ -0,0 +1,44 @@
#!/bin/bash
set -e
trap 'curl -d "🚨 [$d] Error en el proceso de backup formha (línea $LINENO)" ntfy.xala.dev/alerts' ERR
# 1.- Establecer fecha para el nombre del archivo
d=$(date +"%d.%m.%Y-%H.%M")
# 2.- Establecer directorio de respaldo
dir="/home/dix/backups-db"
mkdir -p "$dir"
{
curl -H "X-Ttl: 604800" -d "🤖 [$d] Inicia el proceso de backup formha" ntfy.xala.dev/alerts
# 3.- Borrar archivos antiguos
if [ -n "$(ls -A "$dir")" ]; then
rm -rfv "$dir"/*
fi
# 4.- Crear nuevo directorio de backup
n_folder_backup="$dir/formha_backup_$d"
mkdir -pv "$n_folder_backup"
# 5.- Copiar archivos de uploads
cp -rv "/var/www/formha/static/uploads/"* "$n_folder_backup"
# 6.- Crear backup de la base de datos
n_file_bu_sql="$n_folder_backup/db_formha_backup_$d.sql"
# export PGPASSWORD='tu_contraseña' # si no usas .pgpass
pg_dump -h 127.0.0.1 -U postgres -d formha -f "$n_file_bu_sql"
# gzip -v "$n_file_bu_sql"
# 7.- Enviar archivos a Google Drive
# rclone copy "$dir" formha_db_backups:/formha-db-backups
rclone copy "$dir" formha_db_backups:/formha-db-backups
# 9.- Eliminar archivos locales
rm -rfv "$dir"/*
curl -H "X-Ttl: 604800" -d "✅ [$d] Backup formha finalizado correctamente" ntfy.xala.dev/alerts
}