Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Backup нескольких папок  (Прочитано 1209 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн megagiga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Backup нескольких папок
« : 12 Февраля 2018, 15:04:02 »
Ребята, помогите. Что то делаю не так. Есть 4 папки с которых надо сделать бэкап. Есть скрипт в bash, но он сохраняет последнюю папку 'World 4', вместо всех четырех. Может подскажете в чем проблема. Под спойлером вырезки скрипта.
(Нажмите, чтобы показать/скрыть)
строка for i in "${WORLDSквадратнаяскобкаСОБАКАквадратнаяскобка}"; do не правильно отображается под спойлером
« Последнее редактирование: 12 Февраля 2018, 15:16:22 от megagiga »

Оффлайн Zeboton

  • Активист
  • *
  • Сообщений: 276
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #1 : 12 Февраля 2018, 15:14:09 »
megagiga, принципиально использовать свой скрипт?

Я давно использую для таких целей пакет backup-manager .

Оффлайн megagiga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #2 : 12 Февраля 2018, 15:24:04 »
В этом скрипте, запуск, перезагрузка, загрузка при запуске сервера, в нем все настроено кроме архивации бэкапов, а переделывать сложно для меня ))

Оффлайн Zeboton

  • Активист
  • *
  • Сообщений: 276
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #3 : 12 Февраля 2018, 15:31:41 »
Хорошо, тогда другой вопрос. Принципиально делать архивацию в разные файлы или можно сделать резервное копирование всех директорий в один архив:

TMP_DIR="/tmp"
DATE=$(date +"%Y%m%d")
BKP_PREFIX="project_name"
BKP_FILE="$TMP_DIR/$BKP_PREFIX-$DATE.tar"
BKP_DIRS="/home/user /var/www /etc"

tar cf "$BKP_FILE" $BKP_DIRS

gzip "$BKP_FILE"

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7207
  • Luck Tales
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #4 : 12 Февраля 2018, 15:36:36 »
megagiga, ну конечно последнюю. У вас цикл уже закрыт (done), а вы продолжаете $i лепить.

не правильно отображается под спойлером
используйте  тег "code" значок-
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн pfg21

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #5 : 12 Февраля 2018, 15:46:31 »
мнэээ чегойто скрипт заморочен на мой взгляд
не проще ли все написать аккуратно
tar -czf /backup/srv3-`date '+%F'`.tgz /world1 /world2 /world3

Оффлайн Zeboton

  • Активист
  • *
  • Сообщений: 276
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #6 : 12 Февраля 2018, 15:49:51 »
pfg21, на мой взгляд тоже проще. Я выше в сообщении развёрнутую версию приведённой вами строки привёл.

Оффлайн megagiga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #7 : 12 Февраля 2018, 16:05:45 »
megagiga, ну конечно последнюю. У вас цикл уже закрыт (done), а вы продолжаете $i лепить.

не правильно отображается под спойлером
используйте  тег "code" значок-
То есть надо убрать строку $i; done?

Оффлайн Zeboton

  • Активист
  • *
  • Сообщений: 276
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #8 : 12 Февраля 2018, 16:09:13 »
megagiga, done нужно поставить в правильное место: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html

Оффлайн megagiga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #9 : 12 Февраля 2018, 16:38:38 »
megagiga, done нужно поставить в правильное место: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html
сделал так:
        for i in "${WORLDS[@]}";do
        echo $i
        done
все равно архивирует только последнюю папку

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7207
  • Luck Tales
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #10 : 12 Февраля 2018, 17:31:01 »
#Settings
WORLDS[1]='World'
WORLDS[2]='World_2'
WORLDS[3]='World 3'
WORLDS[4]='World 4'


mc_backup() {
   mc_saveoff
   for i in "${WORLDSскобки@скобки}" ; do

   echo $i
   done
   NOW=`date "+%Y-%m-%d_%Hh%M"`
   BACKUP_FILE="$BACKUPPATH/${i}_${NOW}.tar"
   echo "Backing up world: $i..."
   #as_user "cd $MCPATH && cp -r $i $BACKUPPATH/${i}_`date "+%Y.%m.%d_%H.%M"`"
   as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $i"
   done
   echo "Backing up $SERVICE"
   as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
   #as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/OPS_server_${NOW}.jar\""
   mc_saveon
   echo "Compressing backup..."
   as_user "gzip -f \"$BACKUP_FILE\""
   echo "Done."
« Последнее редактирование: 12 Февраля 2018, 17:45:54 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн megagiga

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Backup нескольких папок
« Ответ #11 : 12 Февраля 2018, 18:30:32 »
#Settings
WORLDS[1]='World'
WORLDS[2]='World_2'
WORLDS[3]='World 3'
WORLDS[4]='World 4'


mc_backup() {
   mc_saveoff
   for i in "${WORLDSскобки@скобки}" ; do

   echo $i
   done
   NOW=`date "+%Y-%m-%d_%Hh%M"`
   BACKUP_FILE="$BACKUPPATH/${i}_${NOW}.tar"
   echo "Backing up world: $i..."
   #as_user "cd $MCPATH && cp -r $i $BACKUPPATH/${i}_`date "+%Y.%m.%d_%H.%M"`"
   as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $i"
   done
   echo "Backing up $SERVICE"
   as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
   #as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/OPS_server_${NOW}.jar\""
   mc_saveon
   echo "Compressing backup..."
   as_user "gzip -f \"$BACKUP_FILE\""
   echo "Done."
Спасибо МУДРЕЙШИЙ человек!!! Все заработало!

Пользователь добавил сообщение 13 Февраля 2018, 15:51:53:

Пользователь добавил сообщение 13 Февраля 2018, 15:55:14:
#Settings
WORLDS[1]='World'
WORLDS[2]='World_2'
WORLDS[3]='World 3'
WORLDS[4]='World 4'


mc_backup() {
   mc_saveoff
   for i in "${WORLDSскобки@скобки}" ; do

   echo $i
   done
   NOW=`date "+%Y-%m-%d_%Hh%M"`
   BACKUP_FILE="$BACKUPPATH/${i}_${NOW}.tar"
   echo "Backing up world: $i..."
   #as_user "cd $MCPATH && cp -r $i $BACKUPPATH/${i}_`date "+%Y.%m.%d_%H.%M"`"
   as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $i"
   done
   echo "Backing up $SERVICE"
   as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
   #as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/OPS_server_${NOW}.jar\""
   mc_saveon
   echo "Compressing backup..."
   as_user "gzip -f \"$BACKUP_FILE\""
   echo "Done."
Еще один не скромный вопрос. Как в этом скрипте сделать так что бы все архивы backup-ов которые создаются, были с расширением блаблабла.tar.gz. А то получается что последний только имеет такое расширение, а первые 3 блаблабла.tar
« Последнее редактирование: 13 Февраля 2018, 15:55:15 от megagiga »

 

Страница сгенерирована за 0.032 секунд. Запросов: 23.