LinuxForum.Fans
Тема

Помогите одолеть tar

Автор: fragment 9 сообщений 3793 просмотров
#356429

Хотел сделать сервис-меню для создания архива с текущей датой в имени. Скрипт такой:

text

name_tail=`echo "$1" | rev | cut -d'/' -f1 | rev`
arch_name=""$name_tail"@$(date +%H:%M:%S-%d.%m.%Y).tar.xz"
tar cJf "$arch_name" "$1"

$1 - это полный путь, включая имя архивируемого файла. Короче, это не работает. Ни через скрипт, ни в лоб в консоли:

text

fragment@locus /media/mix/Projects/stuff $ /usr/share/apps/dolphin_services/dolphin_services.sh compress_dating impo
tar (child): impo@12\:58\:35-21.12.2013.tar.xz: Cannot open: Input/output error
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
text

fragment@locus /media/mix/Projects/stuff $ tar cJf impo@$(date +"%H:%M:%S-%d.%m.%Y").tar.xz impo/
tar (child): impo@12\:53\:35-21.12.2013.tar.xz: Cannot open: Input/output error
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

Что этому [censored] не нравится?!!1

#356430

вот

text

#!/bin/sh

# Архивирование файлов # в backupdir перечисляются каталоги через пробел.

backupdir="/etc /root" filename="dar_$(date '+%y%m%d').tar.gz"

echo $(date '+%Y-%m-%d %H:%M:%S') "Старт архивирования" >> /var/log/m_arh.log

# Архивируем tar -cvzf "$filename" $backupdir --exclude="*.tar.gz"

#356439

Большая просьба, не использовать грубые выражения в сообщениях.

#356524

rev уберите

#356547
"fragment" написал:
name_tail=`echo "$1" | rev | cut -d'/' -f1 | rev`

классная конструкция... открой для себя basename

"fragment" написал:
arch_name=""$name_tail"@$(date +%H:%M:%S-%d.%m.%Y).tar.xz"

тут больно много кавычек...

"fragment" написал:
tar cJf impo@$(date +"%H:%M:%S-%d.%m.%Y").tar.xz impo/

двоеточие имеет особое значение для тара... проще не использовать её в именах архивов или пользоваться перенаправлением...

#356556

я немного не понимаю, для чего нужно создавать архив с текущей датой?
если можно просто дать
ls -l
и найти нужную дату

#356573

как найти нужную дату тут ?

text
LANG=C ls -l; LANG=ru_RU.UTF-8 ls -l
#356575
"smaharbA" написал:
как найти нужную дату тут ?

ни как... moshell глупость сморозил... если очень хочется, то можно stat'ом...
но оно не продуктивно т.к. для директорий оно почти наверняка от ожидаемого будет отличаться...

#360378
Fat-Zer написал:
[quote="smaharbA"]как найти нужную дату тут ?

ни как... moshell глупость сморозил... если очень хочется, то можно stat'ом...
но оно не продуктивно т.к. для директорий оно почти наверняка от ожидаемого будет отличаться...[/quote]
да, иногда нужно темы читать с первого сообщения

Войдите или зарегистрируйтесь, чтобы ответить.