inicio repositorio gitea
This commit is contained in:
commit
1e7c190f1b
78
README.md
Normal file
78
README.md
Normal 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
44
formha_bu.sh
Normal 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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user