pochechyev
Дек. 11, 2008 18:16:52
Доброго дня!
Сейчас пишу скрипт который будет делать бекап.
Использую bz2 (альтернативы не предлагать).
Вопрос такой, как сделать архивацию папки а не одного файла с помощью
bz2 and python.
Спасибо.
clopomor
Дек. 11, 2008 19:50:56
перед тим по папці пройтись tar і зібрати в один архів а тоді уже bz2
shiza
Дек. 12, 2008 06:51:07
примерно как-то так..
import tarfile
tar = tarfile.open("sample.tar.bz2", "w:bz2")
for name in ["test/zlib.dll", "test/winssl.dll"]:
tar.add(name)
tar.close()
подробнее см. документацию к модулю tarfile
и надо будет обход по дирректориям сделать (см. os.walk)
pochechyev
Дек. 15, 2008 17:55:20
спасиб
balu
Дек. 16, 2008 09:46:52
Может больше подойдет такое? такой вариант, имхо, предпочтительней тем, что более переносим.
#!/bin/bash
DIR="/Your/Path"
BACKUP_DIR="/Your/Backup/Path"
BACKUP_DIR=$BACKUP_DIR/`date +"%Y%m%d"`
mkdir $BACKUP_DIR
cp -R $DIR $BACKUP_DIR
cd $BACKUP_DIR
BACKUP_FILE=`date +"%Y%m%d"`.tar.bz2
echo `pwd`
Pwd=`pwd`
cd .. && \
tar cf - "$Pwd" | bzip2 -f > "$Pwd.tar.bz2"
rm -r -f $BACKUP_DIR
shiza
Дек. 16, 2008 11:30:27
balu
Что ты имеешь ввиду под переносимостью?
balu
Дек. 16, 2008 12:52:41
С машины на машину. bash, tar, bz2/gz есть в любой минимальной поставке, а для такой мелочи, как в моем примере, питон использовать как-то не очень - зависишь от версии, библиотеки, текстового редактора (иногда - настроек) - не стоит оно того. ИМХО.
slivlen
Дек. 16, 2008 13:41:30
balu
Может больше подойдет такое? такой вариант, имхо, предпочтительней тем, что более переносим.
Зачем так сложно? =)
#!/bin/bash
BKP_TO=/backup
BKP_DIRS='/a /b /c'
mkdir -p $BKP_TO
tar cjf $BKP_TO/`date +"%Y%m%d"`.tar.bz2 $BKP_DIRS
balu
Дек. 16, 2008 16:02:24
slivlen
Зачем так сложно? smile
Можно и так :)
shiza
Дек. 17, 2008 00:51:36
balu
Зато вариант на питоне работает даже под windows. И ничего не требует, кроме питона (выше 2.3).
Т.е. впорос совместимости версий, библиотеки ИМХО несущественен.
Насчет настроек редактора, вообще не понял =)