LINUX.ORG.RU

Ошибка tar.

 


0

0

У меня есть 4 папки как мне вписать их в bash

01. Отдел продаж 02. Бухгалтерия 03. Договор 04. Счета

#!/bin/bash

BACKUP_DIR="/mnt/backup-office"

FILES_DIR="/home/user/office/"
FILES_NAMEOP="/home/user/office/01."
FILES_NAMEBUH="/home/user/office/02."
FILES_NAMEDOG="/home/user/office/03."
FILES_NAMESH="/home/user/office/04."

TIMESTAMP=`date +"%Y-%m-%d_%H-%M"`

BACKUP_NAME=00.all-$TIMESTAMP.tar.gz
BACKUP_NAMEOP=01.sales_department-$TIMESTAMP.tar.gz
BACKUP_NAMEBUH=02.accounting-$TIMESTAMP.tar.gz
BACKUP_NAMEDOG=03.contract-$TIMESTAMP.tar.gz
BACKUP_NAMESH=04.accounts-$TIMESTAMP.tar.gz

mount $BACKUP_DIR

mkdir $BACKUP_DIR/$TIMESTAMP

tar czvf $BACKUP_DIR/$TIMESTAMP/$BACKUP_NAME $FILES_DIR
tar czvf $BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMEOP $FILES_NAMEOP
tar czvf $BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMEBUH $FILES_NAMEBUH
tar czvf $BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMEDOG $FILES_NAMEDOG
tar czvf $BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMESH $FILES_NAMESH

umount $BACKUP_DIR

exit 0;
root@websrv01:~# ./backup-office.sh
tar: Removing leading `/' from member names
/home/user/office/
/home/user/office/03. \320\224\320\276\320\263\320\276\320\262\320\276\321\200/
/home/user/office/01. \320\236\321\202\320\264\320\265\320\273 \320\277\321\200\320\276\320\264\320\260\320\266/
/home/user/office/02. \320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\321\217/
/home/user/office/04. \320\241\321\207\320\265\321\202\320\260/
tar: Removing leading `/' from member names
tar: /home/user/office/01.': Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
tar: Removing leading `/' from member names
tar: /home/user/office/02.: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
tar: Removing leading `/' from member names
tar: /home/user/office/03.: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
tar: Removing leading `/' from member names
tar: /home/user/office/04.: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

#!/bin/bash

BACKUP_DIR="/mnt/backup-office"

FILES_DIR="/home/user/office/"
FILES_NAMEOP="/home/user/office/01. Отдел продаж"
FILES_NAMEBUH="/home/user/office/02. Бухгалтерия"
FILES_NAMEDOG="/home/user/office/03. Договор"
FILES_NAMESH="/home/user/office/04. Счета"

TIMESTAMP=`date +"%Y-%m-%d_%H-%M"`

BACKUP_NAME=00.all-$TIMESTAMP.tar.gz
BACKUP_NAMEOP=01.sales_department-$TIMESTAMP.tar.gz
BACKUP_NAMEBUH=02.accounting-$TIMESTAMP.tar.gz
BACKUP_NAMEDOG=03.contract-$TIMESTAMP.tar.gz
BACKUP_NAMESH=04.accounts-$TIMESTAMP.tar.gz

mount $BACKUP_DIR

mkdir -p $BACKUP_DIR/$TIMESTAMP

tar czvf "$BACKUP_DIR/$TIMESTAMP/$BACKUP_NAME" "$FILES_DIR"
tar czvf "$BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMEOP" "$FILES_NAMEOP"
tar czvf "$BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMEBUH" "$FILES_NAMEBUH"
tar czvf "$BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMEDOG" "$FILES_NAMEDOG"
tar czvf "$BACKUP_DIR/$TIMESTAMP/$BACKUP_NAMESH" "$FILES_NAMESH"

umount $BACKUP_DIR

exit 0;



Ну еще можно добавить проверки на то что каталог удачно подмонтировался и что все каталоги для бекапов существуют и что архивы создались без проблем.

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

FILES_NAMEOP=«/home/user/office/01.»
FILES_NAMEBUH=«/home/user/office/02.»
FILES_NAMEDOG=«/home/user/office/03.»
FILES_NAMESH=«/home/user/office/04.»

Bash не будет дополнять имена каталогов за тебя.
Что пишет если попробовать указать каталог кирилицей?

Локали ru_RU.CP1251 и ru_RU.UTF-8 стоят?

Kolins ()
Последнее исправление: Kolins (всего исправлений: 1)
Ответ на: комментарий от Kolins

Вот я написал кириллицей.

FILES_NAMEOP="/home/user/office/01. ^~ ^b          ^`        "

Вот результат

root@websrv01:~# ./backup-office.sh
tar: Removing leading `/' from member names
/home/user/office/
/home/user/office/03. \320\224\320\276\320\263\320\276\320\262\320\276\321\200/
/home/user/office/01. \320\236\321\202\320\264\320\265\320\273 \320\277\321\200\320\276\320\264\320\260\320\266/
/home/user/office/02. \320\221\321\203\321\205\320\263\320\260\320\273\321\202\320\265\321\200\320\270\321\217/
/home/user/office/04. \320\241\321\207\320\265\321\202\320\260/
tar: Removing leading `/' from member names
tar: /home/user/office/01.\320\236\321\202\320\264\320\265\320\273: Cannot stat: No such file or directory
\320\277\321\200\320\276\320\264\320\260\320\266/
tar: Exiting with failure status due to previous errors

OlZhi ()

Опять идиот с кашей в голове. Изучи основы для начала, потом что-то делай. Что за бредятина «вписать в bash»? Ты вообще знаешь что такое bash? Очевидно, нет, открой статью про него и узнай (сам). Потом исправь описание проблемы (если она ещё останется) с идиотского на нормальное.

И не используй bash для скриптов, для скриптов надо использовать sh. Что такое sh тоже узнай самостоятельно.

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

если было бы все так просто, что вставил кириллицу в bash, которая их не видит и ставит вместо них либо пробел либо ^d, я бы сюда не обращался

КТО не видит? «которая»? Кириллица кого-то не видит?

firkax ()