#!/bin/bash#====================================DIR=`cd / && find repos/ -maxdepth 1 -type d`TAR=/bin/tarNDATE=`date +%F`BACKUP_DIR=tmp/repos_backup#====================================cd /for i in $DIRdo$TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR --exclude=reposdone
/bin/tar: tmp/repos_backup/repos/: Cannot open: Is a directory/bin/tar: Error is not recoverable: exiting now./backup.sh: line 18: 552 Broken pipe $TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR --exclude=repos
Принаймні я "дебагаю" скріпти саме так.
for i in $DIRdo$TAR cjfp $BACKUP_DIR/$DIR-$NDATE.tar.bz2 $DIR --exclude=reposdone
"доладжую сценарії"Ось...
А може, в третьому рядку s/\$DIR/i/g ?
Я про те, що циклюємо $DIR через $i, тож і використовувати треба не $DIR на кожній ітерації, а $i.
cd /find repos/ -mindepth 1 -maxdepth 1 -type d | \ awk -F/ -v d=`date -I` '{printf "%s-%s.tar.bz2 %s\n", $2, d, $0'} | \ xargs -l1 tar cfjp
awk -F/ -v d=`date -I` '{printf "%s-%s.tar.bz2 %s\n", $2, d, $0'}
Я не спеціаліст, але це не надто важко:find /repos -mindepth 1 -maxdepth 1 -type dВиводить назви каталогів з repos у формі:something/something_else/yet_one_more/
awk -F/ -v d=`date -I` '{printf "%s-%s.tar.bz2 %s\n", $2, d, $0'}-F/ --(field separator) розділювач полів, вказує роглядати / як поділ між окремими ланцюжками (strings) виводу-v d=`date -I` -- (variable assignment) надає значення змінній d (вивід date -I)printf "%s-%s.tar.bz2 %s\n" -- подібний на C printf вираз, із %s вказівником формату (string)$2, d, $0' -- аргументи printf (не зовсім розумію чому саме $2), d - це змінна з датою, $0 - це перше поле оригінального виводу до / знака.
З $2 розбираюсь у даний момент.
Для / у мене вивід наступний:(nabis:/)$ find / -mindepth 1 -maxdepth 1 -type d | \> awk -F/ -v d=`date "+%Y_%m_%d"` '{printf "%s-%s.tar.bz2 %s\n", $2, d, $0'}altroot-2005_10_25.tar.bz2 /altrootbin-2005_10_25.tar.bz2 /bindev-2005_10_25.tar.bz2 /devetc-2005_10_25.tar.bz2 /etchome-2005_10_25.tar.bz2 /homemnt-2005_10_25.tar.bz2 /mntroot-2005_10_25.tar.bz2 /rootsbin-2005_10_25.tar.bz2 /sbinstand-2005_10_25.tar.bz2 /standtmp-2005_10_25.tar.bz2 /tmpusr-2005_10_25.tar.bz2 /usrvar-2005_10_25.tar.bz2 /varlost+found-2005_10_25.tar.bz2 /lost+found