Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2017, 14:55   #1
mrdmitry
Новичок
Джуниор
 
Регистрация: 29.12.2011
Сообщений: 1
По умолчанию bash-скрипт резервного копирования

День добрый! набросал простенький скрипт для копирования папки. Теперь возникла необходимость копировать еще несколько папок, и копию каждой папки делать в отдельных архив с названием этой папки. подскажите как решить задачу с помощью массива и цикла?

Код:
#!/usr/bin/env bash


clear
cd /home/user/script/

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~условия~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TN=anna # название задания
OF=$TN-$(date +"%Y-%m-%d").tar # название файла на выходе
LOG=O_U_T/logs/backup.log # лог
SRC=I_N/dir1 # директория для копирования
DST=O_U_T/ # директория куда копировать
STATUS=$? # статус последней выполненой команды
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~выполнение~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# создание лога
echo >>$LOG
echo "=====================================" >>$LOG
echo "$(date +'%d-%b-%Y %R')" >>$LOG

# Проверка того, что папка существует
if [[ -d $DST ]]
then
  echo "Папка существует" >> $LOG
else
  mkdir $DST 
  if [[ -d $DST ]]
  then
    echo "Папка успешно создана." >> $LOG
  else
    echo -e "У меня нет прав, на создание папки" >> $LOG
    exit 1 >> $LOG
  fi
fi

# Выполнение копирования
echo "Задание $TN запущено" >> $LOG
tar -cf $DST$OF $SRC

if [[ $STATUS != O ]]
then
  echo "все прекрасно сделалось в $(date +'%R %d-%b-%Y')!" >>$LOG
  echo "=====================================" >>$LOG
else
  echo "операция не выполнилась \"$DST$OF\"" >>$LOG
  tar -cf $DST$OF $SRC
    if [[ $STATUS != O ]]
    then
      echo "при повторной все выполнилось"
    else 
      echo "ни хрена не сделалось"
    fi
fi

exit
mrdmitry вне форума Ответить с цитированием
Старый 22.04.2017, 19:22   #2
nick-one
Пользователь
 
Регистрация: 28.03.2017
Сообщений: 35
По умолчанию

Написание скриптов дело хорошее, но нужно ли оно в этом случае? Резервное копирование не ноухау и есть полно готовых решение этой задачи. Хотя сам писал что-то подобное.

При увеличении объема данных возникнут проблемы. Например, есть директория в ней 10 *.doc файлов 1 изменен со времени последнего резервирования. Копировать все? Тут нужно инкрементное или дифференциальное копирование.

Для себя использую другое решение, есть 2 директории рабочая, резервная и уже готовая программа(их множество), которая ищет измененные файлы в рабочей и обновляет их в резервной директории.
Резервная хранится на сменном носителе.
nick-one вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
резервного копирования информации Дмитр 1 Паскаль, Turbo Pascal, PascalABC.NET 2 21.04.2016 20:03
Прерывание резервного копирования базы nastena_r_v БД в Delphi 9 15.05.2015 12:08
Система резервного копирования MSSQL Server и SCADA-систем. lat171 Фриланс 0 05.03.2014 14:30
Программа резервного копирования данных SepteR Помощь студентам 4 22.01.2013 21:59
Программа для резервного копирования в Windows Lime Софт 8 11.03.2012 04:42