Модераторы: powerfox, ZeeLax

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не понимаю я поведение tar 
V
    Опции темы
mihanik
Дата 9.11.2011, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



Если из командной строки я подаю команду

Код

tar -czvf /media/usbdisk/arhivy/'Архив баз 1С - 7.7 -`date`.tar.gz' /home/SharedFolder/1C_Bases/7.7/*


То всё классно отрабатывает.
Если же я КОПИРУЮ  ( smile ) эту же строку в скриптик, то у меня получается фигня.

Цитата

tar: Удаляется начальный `/' из имен объектов
/home/SharedFolder/1C_Bases/7.7/Kamin_AVANGARDN/
/home/SharedFolder/1C_Bases/7.7/Kamin_AVANGARDN/DH99.CDX
tar (child): /media/usbdisk/arhivy/Архив баз 1С - 7.7 -`date`.tar.gz: Функция open завершилась с ошибкой: Нет такого файла или каталога
tar (child): Error is not recoverable: exiting now
/home/SharedFolder/1C_Bases/7.7/Kamin_AVANGARDN/SC58.DBF
tar: /media/usbdisk/arhivy/Архив баз 1С - 7.7 -`date`.tar.gz: Функция write завершилась с ошибкой: Обрыв канала
tar: Error is not recoverable: exiting now


Чёй-то?
 smile 



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Zerstroer
  Дата 9.11.2011, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Предполагаю, что shell распознает как спецсимвол символ '/'.
Или что-то с кавычками не так.
Че-нить типа такого должно быть.
Код

'/media/usbdisk/arhivy/Архив баз 1С - 7.7 -\`date\`.tar.gz'

Не серчайте, если подсказал неправильно. smile 


--------------------
In silico
PM MAIL ICQ   Вверх
newbee
Дата 9.11.2011, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



А shell-то один и тот же используется в терминале и как обработчик скрипта?


--------------------
You're face to face
With man who sold the world
PM   Вверх
mihanik
Дата 9.11.2011, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



в скрипте я указал sh, а вот в консоли какой по умолчанию... Не помню.


Это сообщение отредактировал(а) mihanik - 9.11.2011, 14:33


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
bilbobagginz
Дата 9.11.2011, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 34
Всего: 317



не рекомендуется юзать пробелы, и делать двойное вложение раскрытия команд:
Код

'бла `блабла`'

(баш может и съел бы это, но большинство скриптов бегут из-под /bin/sh)
кроме того, пробелы в именах ни черта читабельности не дают.

рекомендуется следовать принципу KISS (Keep It Simple, Stupid)
Код

SRC="/home/SharedFolder/1C_Bases/7.7"
DST="/media/usbdisk/arhivy"
APP="1C_DBs_7.7"
D="`date`"
EXT="tar.gz"
TRG_NAME="${DST}/${APP}_${D}.${EXT}"
## двойные ковычки дают использовать и пробелы в именах, но это изначально дурной тон
tar -czvf "${TRG_NAME}" "${SRC}"/*

флажок v, тоже на фиг не упал. иначе надо вывод в /dev/null.
и проверять результат этой команды - тоже дядя будет.


Это сообщение отредактировал(а) bilbobagginz - 9.11.2011, 16:48


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
mihanik
Дата 9.11.2011, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



Цитата(bilbobagginz @  9.11.2011,  16:40 Найти цитируемый пост)
и проверять результат этой команды - тоже дядя будет.

 smile 

Пасиб!

Завтра попробую...

Добавлено через 1 минуту и 13 секунд
Цитата(bilbobagginz @  9.11.2011,  16:40 Найти цитируемый пост)
не рекомендуется юзать пробелы, и делать двойное вложение раскрытия команд:

Ага!
А сам-то!!!

Цитата(bilbobagginz @  9.11.2011,  16:40 Найти цитируемый пост)
D="`date`"




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
newbee
Дата 9.11.2011, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



Небольшой оффтоп: по-моему `expr` совершенно нечитаемо, нагляднее делать $(expr).


--------------------
You're face to face
With man who sold the world
PM   Вверх
bilbobagginz
Дата 9.11.2011, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 34
Всего: 317



Цитата(mihanik @  9.11.2011,  17:02 Найти цитируемый пост)
А сам-то!!!

ты прав. я не знаю почему, но мне показалось (или я както криво скопипастил), что было по-другому, так:
Код

"bla 'blabla `blab`'"

и указал только внутреннюю часть этого.
кстати, твой скрипт можно демонстрировать экспериментально (есть разница между: ' и "):
Код

kompik:~ user$ echo $SHELL
/bin/bash
kompik:~ user$ /bin/bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.
kompik:~ user$ x='bla `date`'
kompik:~ user$ echo $x
bla `date`
minik:~ user$ x="bla `date`"
kompik:~ user$ echo $x
bla Wed Nov 9 19:31:53 IST 2011

т.е. с ', он не запустил команду, а просто вставил текст.

Добавлено через 1 минуту и 37 секунд
newbee, если тебя волнует читаемость, пиши скрипты на питоне.


Это сообщение отредактировал(а) bilbobagginz - 9.11.2011, 20:38


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
mihanik
Дата 9.11.2011, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



bilbobagginz, вот я иногда не понимаю, когда ты шутишь, а когда серьёзно говоришь...
 smile  smile  smile 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
bilbobagginz
Дата 9.11.2011, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 34
Всего: 317



Цитата(mihanik @  9.11.2011,  20:26 Найти цитируемый пост)
bilbobagginz, вот я иногда не понимаю, когда ты шутишь, а когда серьёзно говоришь...

я тут пишу. если бы ты слышал меня, было бы все понятно.
может подкасты начать записывать ?


Это сообщение отредактировал(а) bilbobagginz - 9.11.2011, 23:34


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
newbee
Дата 9.11.2011, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 1
Всего: 19



Цитата(bilbobagginz @  9.11.2011,  21:38 Найти цитируемый пост)
newbee, если тебя волнует читаемость, пиши скрипты на питоне.
Зачем? Читаемость баш-скриптов хороша.


--------------------
You're face to face
With man who sold the world
PM   Вверх
Lols
Дата 10.11.2011, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 21.10.2011

Репутация: нет
Всего: нет



Ну что, проверил, работает?
PM MAIL   Вверх
mihanik
Дата 10.11.2011, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



Ну... Что сказать...

Вместо 3-х строк 

Код

tar -czvf /media/usbdisk/arhivy/'Архив баз 1С - 7.7 -`date`.tar.gz' /home/SharedFolder/1C_Bases/7.7/*
tar -czvf /media/usbdisk/arhivy/'Архив баз 1С - 8.1 -`date`.tar.gz' /home/SharedFolder/1C_Bases/8.1/*
tar -czvf /media/usbdisk/arhivy/'Архив баз 1С - 8.2 -`date`.tar.gz' /home/SharedFolder/1C_Bases/8.x/*


Написал следующее

Код

#!/bin/sh

SRC="/home/SharedFolder/1C_Bases/7.7"
DST="/media/usbdisk/arhivy"
APP="1C_DBs_7.7"
D="`date`"
EXT="tar.gz"
TRG_NAME="${DST}/${APP}_${D}.${EXT}"
## двойные ковычки дают использовать и пробелы в именах, но это изначально дурной тон
tar -czvf "${TRG_NAME}" "${SRC}"/*

SRC="/home/SharedFolder/1C_Bases/8.1"
DST="/media/usbdisk/arhivy"
APP="1C_DBs_8.1"
D="`date`"
EXT="tar.gz"
TRG_NAME="${DST}/${APP}_${D}.${EXT}"
## двойные ковычки дают использовать и пробелы в именах, но это изначально дурной тон
tar -czvf "${TRG_NAME}" "${SRC}"/*

SRC="/home/SharedFolder/1C_Bases/8.x"
DST="/media/usbdisk/arhivy"
APP="1C_DBs_8.x"
D="`date`"
EXT="tar.gz"
TRG_NAME="${DST}/${APP}_${D}.${EXT}"
## двойные ковычки дают использовать и пробелы в именах, но это изначально дурной тон
tar -czvf "${TRG_NAME}" "${SRC}"/*


Всё работает.
Всем спасибо!

bilbobagginz, тебе особенно!
smile



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
bilbobagginz
Дата 10.11.2011, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 34
Всего: 317



может код повторять не надо, все-таки одно и тоже делаешь 3 раза:
Код

#!/bin/sh
### повторяемый код надо в цикл. 
### потом добавить версию 9.1 - как 2 пальца об асфальт.
VERSIONS="
7.7
8.1
8.x
"
SRC_ROOT="/home/SharedFolder/1C_Bases/"
DST_ROOT="/media/usbdisk/arhivy"
APP_PREFIX="1C_DBs"
DATE="`date`"
EXT="tar.gz"
BACKUP_CMD="tar -zcf"
ERRORS="/var/log/backup.errors.${DATE}"

for V in ${VERSIONS}
do
    DST="${DST_ROOT}/${APP_PREFIX}_${V}_${DATE}.${EXT}"
    SRC="${SRC_ROOT}/${V}"
    ${BACKUP_CMD} "${DST}" "${SRC}"/* 2>&1 >> ${ERRORS}
    # так проверяют результат посл. программы:
    if [ $? -ne 0 ]; then
    # 0 - хорошо, не 0 - плохо, т.е. ошибка
        echo "ERROR: [${DATE}] Failed to backup folder: ${SRC}" >> "${ERRORS}"
    fi
done



Это сообщение отредактировал(а) bilbobagginz - 10.11.2011, 19:54


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
mihanik
Дата 10.11.2011, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



Цитата(bilbobagginz @  10.11.2011,  19:43 Найти цитируемый пост)
может код повторять не надо, все-таки одно и тоже делаешь 3 раза:


Гы...

А это я немного поиздевался...

 smile  smile  smile 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Администрирование"
ZeeLax
Imple
nerezus
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.

  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование *NIX систем | Следующая тема »


 




[ Время генерации скрипта: 0.0911 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.