Архивирование всех папок в директории
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- AlkoGekS
- сержант
- Сообщения: 152
- Зарегистрирован: 2007-05-22 11:30:29
- Контактная информация:
Архивирование всех папок в директории
Добрый день товарищи, есть к вам вопросик!
Нужно делать ежедневные бекапы большого количества папок. Все папки расположены в одной директории, поэтому на данный момент архивируется все одним архивом (~150 гигабайт)... что очень не удобно.
Хотелось бы реализовать такую систему:
В определенное время запускается скрипт и архивирует каждую папку в указанной директории в отдельный архив tar.gz с указанием имени папки и даты создания архива.
Как это реализовать? Подскажите пожалуйста.
Нужно делать ежедневные бекапы большого количества папок. Все папки расположены в одной директории, поэтому на данный момент архивируется все одним архивом (~150 гигабайт)... что очень не удобно.
Хотелось бы реализовать такую систему:
В определенное время запускается скрипт и архивирует каждую папку в указанной директории в отдельный архив tar.gz с указанием имени папки и даты создания архива.
Как это реализовать? Подскажите пожалуйста.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- zeus4all
- сержант
- Сообщения: 261
- Зарегистрирован: 2009-10-07 18:48:34
- Откуда: Далекий космос
Re: Архивирование всех папок в директории
если количество субдиректорий и их названия не изменяются динамически то что мешает создать руками все скрипты по 1 и в крон, если меняется - то не знаю, может быть както парсить вывод там ls может быть, и попробовать это пихать в скрипт,хм...не силен я в программировании, поетому с выводом примеров у меня пусто .
Историю пишут победители, поэтому в ней не упоминаются проигравшие. (с) Артур Дрекслер
Я знаю только то, что ничего не знаю. (с) Сократ
Если тебе плюют в спину, значит ты впереди. (с) Конфуций
Я знаю только то, что ничего не знаю. (с) Сократ
Если тебе плюют в спину, значит ты впереди. (с) Конфуций
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Архивирование всех папок в директории
Код: Выделить всё
#!/bin/sh
cd /directory/to/backup
DATE = `date -j "+ %Y%m%d"`
#20100913
LIST = `ls -1`
for ELEMENT in $LIST
do
tar -cfz /hrere/to/store/backups/$DATE-$ELEMENT.tar.gz $ELEMENT
done
exit 0
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- AlkoGekS
- сержант
- Сообщения: 152
- Зарегистрирован: 2007-05-22 11:30:29
- Контактная информация:
Re: Архивирование всех папок в директории
Принцип скрипта понял, но у меня bash!
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Архивирование всех папок в директории
/bin/sh есть в любой системе.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- AlkoGekS
- сержант
- Сообщения: 152
- Зарегистрирован: 2007-05-22 11:30:29
- Контактная информация:
Re: Архивирование всех папок в директории
Код: Выделить всё
server # ./backup.sh
date: invalid option -- j
Try `date --help' for more information.
./backup.sh: line 5: DATE: command not found
./backup.sh: line 7: LIST: command not found
server #
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: Архивирование всех папок в директории
Код: Выделить всё
DATE=`date +"%Y%m%d"`
LIST=`ls -1`
-
- мл. сержант
- Сообщения: 79
- Зарегистрирован: 2009-08-04 16:41:09
Re: Архивирование всех папок в директории
DATE=val и LIST=val без пробелов, иначе оно считает что это команда с двумя параметрами.
Если у вас архив ложится на тот же винт, на котором исходник, почитайте про снапшоты - быстрее, удобнее и меньше нагрузка на винты. Если нет, rsync на другой винт/сервер и там снапшот
Если у вас архив ложится на тот же винт, на котором исходник, почитайте про снапшоты - быстрее, удобнее и меньше нагрузка на винты. Если нет, rsync на другой винт/сервер и там снапшот
- AlkoGekS
- сержант
- Сообщения: 152
- Зарегистрирован: 2007-05-22 11:30:29
- Контактная информация:
Re: Архивирование всех папок в директории
Спасибо большое всем!
Получился вот такой скрипт (именно то, что я и хотел):
Получился вот такой скрипт (именно то, что я и хотел):
Код: Выделить всё
#!/bin/sh
cd /home/backup_dir
DATE=`date +"%Y%m%d"`
LIST=`ls`
for ELEMENT in $LIST
do
/bin/tar -cf /Backup/Backup_$DATE-$ELEMENT.tar $ELEMENT
/bin/gzip -9 /Backup/Backup_$DATE-$ELEMENT.tar
done
exit 0
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Архивирование всех папок в директории
Linux что ли? Тогда да, date без -j (это у БСДшников -j).
а с пробелами я точно прошляпил... без пробелов присвоение переменным надо было делать
а с пробелами я точно прошляпил... без пробелов присвоение переменным надо было делать
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
- AlkoGekS
- сержант
- Сообщения: 152
- Зарегистрирован: 2007-05-22 11:30:29
- Контактная информация:
Re: Архивирование всех папок в директории
Многоплатформенный скрипт мне был нужен просто
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Архивирование всех папок в директории
если много платформенный, то лучше на sh писать...
ядерный взрыв...смертельно красиво...жаль, что не вечно...
- DanGer
- рядовой
- Сообщения: 18
- Зарегистрирован: 2007-01-07 16:59:44
- Откуда: Kazakhstan
Re: Архивирование всех папок в директории
Насколько я знаю, tar с ключом "-z" создает архив gz. Если так, можно избежать второй строки:
Код: Выделить всё
/bin/gzip -9 /Backup/Backup_$DATE-$ELEMENT.tar
Не стой на дороге - раздавят!
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: Архивирование всех папок в директории
сорри, но если многоплатформенный, то лучше на shell НЕ писать.schizoid писал(а):если много платформенный, то лучше на sh писать...
python/perl/php/scala...
With best wishes, Sergej Kandyla
-
- рядовой
- Сообщения: 42
- Зарегистрирован: 2010-08-19 16:24:17
- Откуда: Санкт-Петербург
Re: Архивирование всех папок в директории
Все зависит от сложности скрипта - в данном случае sh то что нужно.
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Архивирование всех папок в директории
ни одного из перечисленных языков нет на IBM AIX что на работе стоит. (если тока перл есть - не уверен, надо глянуть)paix писал(а):сорри, но если многоплатформенный, то лучше на shell НЕ писать.schizoid писал(а):если много платформенный, то лучше на sh писать...
python/perl/php/scala...
но там есть sh - как и на любой UNIX платформе
Убей их всех! Бог потом рассортирует...
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: Архивирование всех папок в директории
только сочувствую...Alex Keda писал(а):ни одного из перечисленных языков нет на IBM AIX что на работе стоит.paix писал(а): сорри, но если многоплатформенный, то лучше на shell НЕ писать.
python/perl/php/scala...
но там есть sh - как и на любой UNIX платформе
With best wishes, Sergej Kandyla
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Архивирование всех папок в директории
неа. мне с головой хватает шелла.
в паре скриптов юзаю перл - в основном там где надо много считать дробные числа и делать достаточно сложную математику и логику.
а посочувствовать я могу тока вам - зоопарк языков содержать/юзать - у вас масса свободного времени которое вы не знаете куда деть, видимо.
в паре скриптов юзаю перл - в основном там где надо много считать дробные числа и делать достаточно сложную математику и логику.
а посочувствовать я могу тока вам - зоопарк языков содержать/юзать - у вас масса свободного времени которое вы не знаете куда деть, видимо.
Убей их всех! Бог потом рассортирует...
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: Архивирование всех папок в директории
О да,
переносимость (о чем шла речь) shell скриптов уровня echo "hello world" просто божественна. Работают на любом unix
чуть сложнее - и балалайка.
У меня зоопарка нет. Для более сложной логики - использую python.
переносимость (о чем шла речь) shell скриптов уровня echo "hello world" просто божественна. Работают на любом unix
чуть сложнее - и балалайка.
У меня зоопарка нет. Для более сложной логики - использую python.
With best wishes, Sergej Kandyla
- DanGer
- рядовой
- Сообщения: 18
- Зарегистрирован: 2007-01-07 16:59:44
- Откуда: Kazakhstan
Re: Архивирование всех папок в директории
А что может быть проще и мультиплатформеннее, чем sh? Мое мнение: если есть возможность - лучше писать на sh, независимо есть ли на управляемых системах python etc.
Не стой на дороге - раздавят!
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: Архивирование всех папок в директории
Какая в задницу мультиплатформенность скриптов на sh ?DanGer писал(а):А что может быть проще и мультиплатформеннее, чем sh? Мое мнение: если есть возможность - лучше писать на sh, независимо есть ли на управляемых системах python etc.
если опции шеловских команд да и сами команды отличаются в разных юниксах.
RTFM. Например, Эрик Реймонд, Искусство программирования для Unix.
With best wishes, Sergej Kandyla
- DanGer
- рядовой
- Сообщения: 18
- Зарегистрирован: 2007-01-07 16:59:44
- Откуда: Kazakhstan
Re: Архивирование всех папок в директории
Я, конечно могу ошибаться, но sh всега был и остается sh (опустим тот факт, что во FreeBSD это линк на tcsh). И я не заметил каких-то отличий в работе указанного интерпретатора ни в FreeBSD, ни в AIX и в двух-трех линукс - всегда все работало как надо. Хотя, линуксоиды народ неординарный, может у них и sh какой-то неправильный (не UNIX, все-таки).
Может Вы путаете с синтаксисом отдельных утилит в системах? Ну да, у них нет строгого предписания иметь один набор опций и функций.
Может Вы путаете с синтаксисом отдельных утилит в системах? Ну да, у них нет строгого предписания иметь один набор опций и функций.
Не стой на дороге - раздавят!
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Архивирование всех папок в директории
во фре csh это линк на tcsh, a sh - это оригинальный шелл борна
на лине вроде как sh - это линк на баш, а ash - это классический sh.. или совместивый с ним shell альмквиста.. кстати, ash и sh вроде в обе стороны совместимы?
в первой колонке иноды
на лине вроде как sh - это линк на баш, а ash - это классический sh.. или совместивый с ним shell альмквиста.. кстати, ash и sh вроде в обе стороны совместимы?
Код: Выделить всё
[13:50]~/> whereis ash
ash:
[13:50]~/> ls -li /bin | grep sh
49817 -r-xr-xr-x 2 root wheel 319468 1 май 2009 csh
49842 -r-xr-xr-x 1 root wheel 115296 1 май 2009 sh
49817 -r-xr-xr-x 2 root wheel 319468 1 май 2009 tcsh
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
-
- лейтенант
- Сообщения: 863
- Зарегистрирован: 2007-09-24 12:41:05
- Откуда: dn.ua
- Контактная информация:
Re: Архивирование всех папок в директории
Я ничего не путаю и выражаюсь конкретно.DanGer писал(а): Может Вы путаете с синтаксисом отдельных утилит в системах? Ну да, у них нет строгого предписания иметь один набор опций и функций.
Вам кстати часто приходится писать на sh/csh без использования "отдельных утилит"? таких как find, sort, awk, sed, tar и т.п. ?
именно поэтому shell скрипты имеют очень низкую переносимость, потому что в чистом виде скрипты на sh/csh - это скрипты уровня "hello world".
open your mind! open your eyes!
With best wishes, Sergej Kandyla
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Архивирование всех папок в директории
2 paix
вы бредите
посомтрите на стартовые скрипты FreeBSD
почти чистый sh c расчётом что утилит максимум что будет /bin и /sbin
========
что касается хело ворлд - 99% скриптов администратора - это именно хело ворлд.
и на каждой новой системе изобретать новый хело ворлд на новом языке - не, это не для меня.
да, и 90% основных опций у основных команд, типа awk/grep/find/etc - они одинаковы.
если вы используете какие-то нестандартные извраты - это ваша проблема.
вы бредите
посомтрите на стартовые скрипты FreeBSD
почти чистый sh c расчётом что утилит максимум что будет /bin и /sbin
========
что касается хело ворлд - 99% скриптов администратора - это именно хело ворлд.
и на каждой новой системе изобретать новый хело ворлд на новом языке - не, это не для меня.
да, и 90% основных опций у основных команд, типа awk/grep/find/etc - они одинаковы.
если вы используете какие-то нестандартные извраты - это ваша проблема.
Убей их всех! Бог потом рассортирует...