Автор Тема: Кой архивиращ метод/програма да използвам?  (Прочетена 8164 пъти)

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
Код:
mv papka.tar.xz papka-2017-03-22.tar.xz
Това пък какво ли би направило ?
Ааааа мув, значи преименуване ... без преместване
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

Naka

  • Участник
  • *****
  • Публикации: 2607
    • Профил
И аз така правя, записвам си в text файл по-сложните готови команди.

името на tar архива няма нищо общо с името на папката която архивираш. Обикновенно се прави името на тар файла да съвпада с папката за да се сетиш, но това не означава че не може да бъде друго.

спокойно може да направиш това
tar cJf /run/media/..../Archive/PAPKA-2017-03-22.tar.xz PAPKA

той вътре архива си знае че е архивирал папка.

или ако вече си го направил да го преименуваш както ти беше казано по-горе.
« Последна редакция: Мар 22, 2017, 13:54 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
името на tar архива няма нищо общо с името на папката която архивираш. Обикновенно се прави името на тар файла да съвпада с папката за да се сетиш, но това не означава че не може да бъде друго.

спокойно може да направиш това
tar cJf /run/media/..../Archive/PAPKA-2017-03-22.tar.xz PAPKA

той вътре архива си знае че е архивирал папка.

или ако вече си го направил да го преименуваш както ти беше казано по-горе.
Разбирам. Хитро и качествено!
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

growchie

  • Участник
  • *****
  • Публикации: 596
    • Профил
@3p0 да постна ли тук моя скрипт или не ти се занимава? Елементарни са пускат се с команда и параметър след това. Просто трябва да смениш 2-3 пътя в тях за да ти паснат.
Активен

3p0

  • Участник
  • *****
  • Публикации: 338
    • Профил
@3p0 да постна ли тук моя скрипт или не ти се занимава? Елементарни са пускат се с команда и параметър след това. Просто трябва да смениш 2-3 пътя в тях за да ти паснат.
Постни тук твоя скрипт, за да го използвам след малка промяна за мои нужди.
Благодаря!
Активен

PC1: Intel® Celeron® CPU G540 2.50GHz; MB=Gigabyte GA-H81M-S2H rev.1.0; RAM=16Гб DDR3; VIDEO=SAPPHIRE ATI RADEON 4850.
PC2: AMD Athlon (tm) 64 X2 Dual Core Processor 5400+ 2.80 GHz; MB=GIGABYTE M61PME-S2P; RAM=8Гб DDR2; Video=NVIDIA nForce 6150SE (6100-430) - built in the MB.

growchie

  • Участник
  • *****
  • Публикации: 596
    • Профил
Този е вариантът ми за FreeBSD и ползва gtar (GNU tar-а както в линукс) има леки разлики в параметрите които приема в сравнение с BSD tar командата, пъврото нещо е да си го инсталираш.

Основния скрипт го държа в /root/bin но той няма значение къде се намира правиш си файл примерно /root/bin/backup-files и слагаш това
Код:
#!/bin/sh

LEVEL=""

for i; do
case "$i" in --level*)
LEVEL=${i#*=}
;;
esac
done

if [ $LEVEL -gt 3 ]; then
    echo "Level greater than 3" && exit 6
fi

test -z "$LEVEL" && echo "No level selected. Level must be between 0 and 3" && exit 1
test -f /usr/local/etc/backup/options-files && . /usr/local/etc/backup/options-files
test -z "$DESTINATION_PATH" && echo "Destination path missing" && exit 2
test -z "$BACKUP_LIST" && echo "Backup list missing" && exit 3
test -z "$DONT_BACKUP" && echo "Ignore list missing" && exit 4

NOW=$(date +%Y-%m-%d-%H-%M)
ARCHIVE_FILE="${DESTINATION_PATH}/${HOST}-files-level${LEVEL}-${NOW}.tar.gz"
LIST_FILE="${DESTINATION_PATH}/${HOST}-files-level${LEVEL}-${NOW}.list"

if [ $LEVEL -gt 0 ]; then
    LOW_LEVEL=$((LEVEL-1))
    LAST_LIST_FILE=$(ls "${DESTINATION_PATH}/${HOST}-files-level${LOW_LEVEL}"*list 2>/dev/null | tail -1)
    test -z "$LAST_LIST_FILE" && echo "List file not found" && exit 5
    cp "$LAST_LIST_FILE" "$LIST_FILE"
fi

/usr/local/bin/gtar --create --listed-incremental="$LIST_FILE" --file="$ARCHIVE_FILE" --directory=/ --files-from="$BACKUP_LIST" --exclude-from="$DONT_BACKUP" --gzip

if [ $LEVEL -lt 3 ]; then
    HIGH_LEVEL=$((LEVEL+1))
    rm "${DESTINATION_PATH}/${HOST}-files-level${HIGH_LEVEL}-"*
fi

В FreeBSD bash е опционален компонент и е добре скриптовете за са за /bin/sh. Понеже обичам да оувъренджинийрвам на някои места работите си настройките съм ги изнесъл в отделни файлове. и не само заради това, тоя скрипт първоначално го писах за линукс, после за втори линукс след това и за фрибсд. Да да не ровя като кокошка всеки път като го преправям съм си направил следните допълнителни файлове:

/usr/local/etc/backup/options-files който има следното съдържание:
Код:
DESTINATION_PATH=/mnt/net
BACKUP_LIST=/usr/local/etc/backup/stufftobackup-files
DONT_BACKUP=/usr/local/etc/backup/ignorelist-files

Нещата са ясни предполагам - първото къде да се архивира второ е файл какво да се архивира, а третото ми е игнор лист.

Моят файл /usr/local/etc/backup/stufftobackup-files съдържа:
Код:
/share
/var/db/firebird
Само това папките които искам да архивирам на нов ред всяка от тях
Другото е игнор листата ми /usr/local/etc/backup/ignorelist-files:
Код:
/share/.zfs
/share/.recycle
/var/db/firebird/firebird.log
Примерно това е при мен.

ползвам го като пиша backup-files --level=0 за архив първо ниво - веднъж годишно --level=1 за второ ниво и т.н.
Някои неща които може да промениш примерно самият ред за архивиране мачкам с --gzip ако искаш да ползваш xz сложи накрая опцията --xz и смени съответно променливата
Код:
ARCHIVE_FILE="${DESTINATION_PATH}/${HOST}-files-level${LEVEL}-${NOW}.tar.gz"
на
Код:
ARCHIVE_FILE="${DESTINATION_PATH}/${HOST}-files-level${LEVEL}-${NOW}.tar.xz"

Чудих се да ти давам ли последните редове от скрипта:
Код:
if [ $LEVEL -lt 3 ]; then
    HIGH_LEVEL=$((LEVEL+1))
    rm "${DESTINATION_PATH}/${HOST}-files-level${HIGH_LEVEL}-"*
fi

Това нещо ТРИЕ автоматично старите архиви от по-горно ниво. Примерно като прави левъл 0 бекъп трие левъл 1 бекъпите но не левъл 2 и 3. Просто като ги пускам всеки ден и много се натрупват. Може да го изтриеш от твоя код.

п.п. Мисля, че е безсмислено да казвам, че яко някой има идеи може да предлага подобрения. Това нещо си работи при мен вече 10 и повече години. Мисля, че в предния пост цитирах от къде съм го взел.

п.п.п. Ето такива файлове създава скрипта
Код:
server-files-level0-2015-07-21-14-57.list server-files-level1-2017-01-01-05-00.tar.gz server-files-level2-2017-03-12-21-00.list server-files-level3-2017-03-21-03-00.tar.gz
server-files-level0-2015-07-21-14-57.tar.gz server-files-level1-2017-02-01-05-00.list server-files-level2-2017-03-12-21-00.tar.gz server-files-level3-2017-03-22-03-00.list
server-files-level0-2016-01-01-01-00.list server-files-level1-2017-02-01-05-00.tar.gz server-files-level2-2017-03-19-21-00.list server-files-level3-2017-03-22-03-00.tar.gz
server-files-level0-2016-01-01-01-00.tar.gz server-files-level1-2017-03-01-05-00.list server-files-level2-2017-03-19-21-00.tar.gz
server-files-level0-2017-01-01-01-00.list server-files-level1-2017-03-01-05-00.tar.gz server-files-level3-2017-03-20-03-00.list
server-files-level0-2017-01-01-01-00.tar.gz server-files-level2-2017-03-05-21-00.list server-files-level3-2017-03-20-03-00.tar.gz
server-files-level1-2017-01-01-05-00.list server-files-level2-2017-03-05-21-00.tar.gz server-files-level3-2017-03-21-03-00.list
« Последна редакция: Мар 22, 2017, 17:48 от growchie »
Активен

jet

  • Участник
  • *****
  • Публикации: 1766
  • Distribution: debian sid
  • Window Manager: kde
    • Профил
Можеш да монтираш и архива като файлова състема и да правиш йкаквото си искаш

archivemount [-hVdfs] [-o options] archivepath mountpoint


https://linuxaria.com/howto/how-to-mounts-an-archive-for-access-as-a-file-system
Активен

Linux: From WTF to OMG

growchie

  • Участник
  • *****
  • Публикации: 596
    • Профил
Можеш да монтираш и архива като файлова състема и да правиш йкаквото си искаш

archivemount [-hVdfs] [-o options] archivepath mountpoint


https://linuxaria.com/howto/how-to-mounts-an-archive-for-access-as-a-file-system


Хехе, това е идейно.

Малко като оффтопик (както обикновено) на Mac бекъпа е много интересно организиран. Изобщо не се компресира (компресията май е на нифо FS там), а се ползват hard links за дедупликация. Предимството е, че като отвориш папката за последния архив там ти се показват абсолютно всички файлове на системата и не се налага да се рови по архивите за търсене къде беше нужната версия. От всички решения които съм пробвал (ужасните боза бекъпи, линукс тар и рсинк) за десктоп маковската реализация най ми допада.
Активен

go_fire

  • Участник
  • *****
  • Публикации: 5071
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Първо. Нали имаше нещо наречено Бакула дето било като на намацаните.

Второ. Твърдите връзки нали действат единствено в рамките на един физически носител.

Трето. Ако го правят с търди връзки, нали при промяна на оригинала ще се промени и връзката. Защо ми е такъв архив??? Това не е архив.

Аз твърди връзки мога да си правя и с ln без -s. Не ми трябва цяла, скапана, намацана ОС за това. А и полза никаква.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

jet

  • Участник
  • *****
  • Публикации: 1766
  • Distribution: debian sid
  • Window Manager: kde
    • Профил

Малко като оффтопик (както обикновено) на Mac бекъпа е много интересно организиран. Изобщо не се компресира (компресията май е на нифо FS там), а се ползват hard links за дедупликация. Предимството е, че като отвориш папката за последния архив там ти се показват абсолютно всички файлове на системата и не се налага да се рови по архивите за търсене къде беше нужната версия. От всички решения които съм пробвал (ужасните боза бекъпи, линукс тар и рсинк) за десктоп маковската реализация най ми допада.
Това не е измислено от Apple, а си е функция на Unix/Linux файловите системи (хардлинкс).
В линукс това става лесно така:

Код
GeSHi (Bash):
  1. mv /backup/den2 /backup/den3
  2. mv /backup/den1 /backup/den2
  3. cp -al /backup/dnes /backup/den1
  4. rsync -a --delete /danni /backup/dnes

можеш да държиш назад колкото си искаш дни/часа без дупликация. Пази версиите както и изтритите файлове.
Забележка: Всичко това трябва да се случва на файлова система поддържаща hardlinks - ext2|3|4, btrfs etc. Забравете FAT, NTFS, CIFS, SMB

Ползвам този метод от години и е железен. Да, няма компресия, но красотата изисква жертви.
« Последна редакция: Мар 23, 2017, 00:11 от jet »
Активен

Linux: From WTF to OMG

growchie

  • Участник
  • *****
  • Публикации: 596
    • Профил
Естествено, че знам че хард линковете не са Дарвин специфицни. Просто се изненадвам, че само те го ползват толкова активно.
Активен