LINUX.ORG.RU

Вопрос по bash


0

0

Hi all!
Имеется директория, в которой тоже есть директории (например, /repos/dir1, /repos/dir2, /repos/dir3 и т.д.).
Что хочу:
хочу директории все директории в /repos (исключая саму /repos, тоесть только dir1, dir2 и dir3) заархивировать и потом передать на другую машину. Вроде просто. Написал скриптик:
#!/bin/bash

#====================================
DIR=`cd / && find repos/ -maxdepth 1 -type d`
DIR2="repos"
TAR=/bin/tar
NDATE=`date +%F`
BACKUP_DIR=/tmp/repos_backup
#====================================

cd /
for i in $DIR
do
$TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR
done

Но у меня все вываливается с такими ошибками:
/bin/tar: /tmp/repos_backup/repos/: Cannot open: Is a directory
/bin/tar: Error is not recoverable: exiting now
./backup.sh: line 18: 10163 Broken pipe $TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR
/bin/tar: /tmp/repos_backup/repos/: Cannot open: Is a directory
/bin/tar: Error is not recoverable: exiting now
./backup.sh: line 18: 10165 Broken pipe $TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR
/bin/tar: /tmp/repos_backup/repos/: Cannot open: Is a directory
/bin/tar: Error is not recoverable: exiting now

Подскажите, куда копать. Заранее благодарен за ответ.

anonymous

Ответ на: комментарий от Pi

Ошибку понял. Как тогда добавить к имени архива имя папки, чтоб было приблизительно так - dir-date.tar.bz2?

anonymous
()
Ответ на: комментарий от gr_buza

В смысле? Сделать так:
$TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR/* --exclude=repos ??

anonymous
()
Ответ на: комментарий от gr_buza

/bin/tar: /tmp/repos_backup/repos/: Cannot open: Is a directory /bin/tar: Error is not recoverable: exiting now ./backup.sh: line 20: 19362 Broken pipe $TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR/* --exclude=repos

anonymous
()
Ответ на: комментарий от anonymous

у тебя там в аргументах тара $DIR выдает кучу аргументов, когда нужен один.

надо как-то по другому делать

gr_buza ★★★★
()
Ответ на: комментарий от gr_buza

Ок, посоветуйте, как можно правильно сделать, чтобы из папки /dir брались только подпапки первого уроня dir1, dir2 dir3 и загонялись в архив с именем типа dir1-data.tar.bz2, dir2-data.tar.bz2 и dir1-data.tar.bz2.

anonymous
()
Ответ на: комментарий от amm

ДА, спасибо, подправил под себя и работает.
Видимо, пора учить awk и sed.....

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.