Intereting Posts
исключить команды из прав пользователя sudo Как использовать os-prober для поиска загрузочных данных MS-Windows? Bash: неоднозначное перенаправление может ping google dns, но не google.de -> неизвестный хост // работал в другой сети Как полностью блокировать ssh и pings на сервере под управлением Oracle Linux 6.7 Есть ли способ разрешить все IP-адреса PIA VPN со сценарием? suid executibles работают только тогда, когда они присутствуют в системе PATH Поддерживаются ли файловые системы с резервной копией (например, sysfs и procfs) в таблице суперблока и inode? Разница между «bash executable» и «bash -c executable» как сделать файл вредоносного ПО доступным для чтения с помощью «Нет разрешения на чтение в файле» на linux ext-4? Доступ через samba для связи с другой файловой системой в общем каталоге (ошибка разрешения) wkhtmltopdf & debian – установить Ошибка статистики журнала не удалась: разрешение отклонено во время LogRotation Настроить верхнюю панель / глобальное меню / Super-Wingpanel в элементарной операционной системе Luna Инструменты визуализации для служб на основе REST

Хотите скачать резервную копию моей базы данных через скрипт bash

Я хочу, чтобы моя firebase database была помещена в пространственную дату в пространственный каталог, обычно дамп базы данных с помощью скрипта, но он не будет создавать дамп в указанном каталоге – дамп только в каталог “/”, а не в каталог. Вот мой сценарий

#! /bin/bash now=$(date +%d) if [ "$now" == 1 ] | [ "$now" == 4 ] | [ "$now" == 7 ] then BACKUP_DIR="/backup/database/week1" elif [ "$now" == 10 ] | [ "$now" == 13 ] then BACKUP_DIR="/backup/database/week2" elif [ "$now" == 16 ] | [ "$now" == 19 ] then BACKUP_DIR="/backup/database/week3" elif [ "$now" == 22 ] | [ "$now" == 25 ] | [ "$now" == 28 ] | [ "$now" == 31 ] then BACKUP_DIR="/backup/database/week4" fi TIMESTAMP=$(date -u +"%d-%m-%Y") MYSQL_USER="backupuser" MYSQL=/usr/bin/mysql MYSQL_PASSWORD="efeww2" MYSQLDUMP=/usr/bin/mysqldump mkdir -p "$BACKUP_DIR/$TIMESTAMP" databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|mysql|information_schema|performance_schema|phpmyadmin)"` for db in $databases; do $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db > $BACKUP_DIR/$TIMESTAMP/$db-$(date +%Y-%m-%d-%H.%M.%S).sql done 

Я подозреваю, что проблема с оператором OR который вы используете.

СИНТАКСИС:

 if [ condition1 ] || [ condition2 ] 

Попробуйте следующий код:

 #! /bin/bash now=$(date +%d) if [ "$now" == 1 ] || [ "$now" == 4 ] || [ "$now" == 7 ] then BACKUP_DIR="/backup/database/week1" elif [ "$now" == 10 ] || [ "$now" == 13 ] then BACKUP_DIR="/backup/database/week2" elif [ "$now" == 16 ] || [ "$now" == 19 ] then BACKUP_DIR="/backup/database/week3" elif [ "$now" == 22 ] || [ "$now" == 25 ] || [ "$now" == 28 ] || [ "$now" == 31 ] then BACKUP_DIR="/backup/database/week4" fi .... .... 

Я не уверен, почему вы пропускаете несколько дней, как 2,3,5, …

Я предлагаю вам использовать опцию, указанную ниже, если вы выбираете месяц недели по отношению к каландру.

  now=`echo $((($(date +%-d)-1)/7+1))` if [ "$now" -eq 1 ]; then BACKUP_DIR="/backup/database/week1" elif [ "$now" -eq 2 ]; then BACKUP_DIR="/backup/database/week2" elif [ "$now" -eq 3 ]; then BACKUP_DIR="/backup/database/week3" else BACKUP_DIR="/backup/database/week4" fi ... ... 

или если вы хотите, чтобы буквально 7 дней в неделю, попробуйте ниже:

 now=$(date +%d) if [ "$now" -le 7 ]; then BACKUP_DIR="/backup/database/week1" elif [ "$now" -le 14 ]; then BACKUP_DIR="/backup/database/week2" elif [ "$now" -le 21 ]; then BACKUP_DIR="/backup/database/week3" else BACKUP_DIR="/backup/database/week4" fi