Soy un novato en el script bash, lo que intento hacer es crear un script bash para ejecutar 2 tipos de procesos de copia de seguridad para mysql, el primero es volcar toda la base de datos mysql en un solo archivo de volcado y el otro es hacer una copia de seguridad de cada una. base de datos en un solo archivo, busco algunos consejos para crear un script bash y el resultado es el siguiente, pero parece que no funciona como esperaba, intento ejecutar el script pero no sucede nada, me alegra que alguien me ayude a solucionarlo. .
#!/bin/bash TIMESTAMP=$(fecha "+%d-%m-%Y") BACKUP_DIR="/nas/mysql" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump copia de seguridad_all_dump(){ buscar /nas/mysql/all_dump -max Depth 1 -tipo d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/all_dump/$TIMESTAMP" $MYSQLDUMP --force --events --todas las bases de datos | gzip > "/$BACKUP_DIR/all_dump/$TIMESTAMP/dump.sql.gz" } copia de seguridad_todos_usuarios(){ buscar /nas/mysql/all_users -max Depth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/todos_usuarios/$TIMESTAMP" bases de datos=`$MYSQL -e "MOSTRAR BASES DE DATOS;" | grep -Ev "(Base de datos|esquema_de_información|esquema_de_rendimiento)"` para db en $bases de datos; hacer $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/todos_usuarios/$TIMESTAMP/$db.gz" hecho }
Respuesta1
#!/bin/bash TIMESTAMP=$(fecha "+%d-%m-%Y") BACKUP_DIR="/nas/mysql" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump copia de seguridad_all_dump(){ buscar /nas/mysql/all_dump -max Depth 1 -tipo d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/all_dump/$TIMESTAMP" $MYSQLDUMP --force --events --todas las bases de datos | gzip > "/$BACKUP_DIR/all_dump/$TIMESTAMP/dump.sql.gz" } copia de seguridad_todos_usuarios(){ buscar /nas/mysql/all_users -max Depth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/todos_usuarios/$TIMESTAMP" bases de datos=`$MYSQL -e "MOSTRAR BASES DE DATOS;" | grep -Ev "(Base de datos|esquema_de_información|esquema_de_rendimiento)"` para db en $bases de datos; hacer $MYSQLDUMP --force --opt --databases "$db" | gzip > "$BACKUP_DIR/todos_usuarios/$TIMESTAMP/$db.gz" hecho }
Necesitas llamar a la función.
backup_all_dump
Necesitas llamar a la función.
backup_all_users