Страница 1 из 1

7za - вызов из скрипта: что за фигня?

Добавлено: 27 фев 2020, 13:33
vromanov
Вызываю из скрипта test.sh программу 7za
#!/bin/sh
DIR4=/mnt/5A4CFC164CFBEAA1/Backup/Archive
DIR5=/mnt/EC644DAE644D7BF8/
DIR6=/mnt/EE64694064690D21/
/usr/bin/7za a -r $DIR4/Tools.7z $DIR5Tools/*&&/usr/bin/7za a -r $DIR4/MyHomeLib.7z $DIR6MyHomeLib/*
Получаю на выходе в терминале странные сообщения
...
/proc/7488/task/7488/fdinfo/ : Отказано в доступе
/proc/7488/task/7488/ns/ : Отказано в доступе
/proc/7488/fd/ : Отказано в доступе
/proc/7488/map_files/ : Отказано в доступе
/proc/7488/fdinfo/ : Отказано в доступе
/proc/7488/ns/ : Отказано в доступе
/proc/7569/task/7569/fd/ : Отказано в доступе
/proc/7569/task/7569/fdinfo/ : Отказано в доступе
/proc/7569/task/7569/ns/ : Отказано в доступе
/proc/7569/fd/ : Отказано в доступе
/proc/7569/map_files/ : Отказано в доступе
/proc/7569/fdinfo/ : Отказано в доступе
/proc/7569/ns/ : Отказано в доступе
/etc/ssl/private/ : Отказано в доступе
...
Похоже, 7za пытается архивировать все, что есть в системе

Если эту же строку (после подстановки параметров, конечно) выполняю в командном окне - все нормально.
victor@victor-linux:~$ 7za a -r /mnt/5A4CFC164CFBEAA1/Backup/Archive/Tools.7z /mnt/EC644DAE644D7BF8/Tools/*&&7za a -r /mnt/5A4CFC164CFBEAA1/Backup/Archive/MyHomeLib.7z /mnt/EE64694064690D21/MyHomeLib/*&&7za a -r /mnt/5A4CFC164CFBEAA1/Backup/Archive/Archive.7z /mnt/EC644DAE644D7BF8/Архив/*

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz (206A7),ASM,AES-NI)

Scanning the drive:
30 folders, 1090 files, 165296513 bytes (158 MiB)

Creating archive: /mnt/5A4CFC164CFBEAA1/Backup/Archive/Tools.7z

Items to compress: 1120


Files read from disk: 1087
Archive size: 60895625 bytes (59 MiB)
Everything is Ok

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz (206A7),ASM,AES-NI)

Scanning the drive:
45 folders, 287 files, 429233794 bytes (410 MiB)

Creating archive: /mnt/5A4CFC164CFBEAA1/Backup/Archive/MyHomeLib.7z

Items to compress: 332


Files read from disk: 280
Archive size: 102491400 bytes (98 MiB)
Everything is Ok

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz (206A7),ASM,AES-NI)

Scanning the drive:
2671 folders, 19451 files, 4754741554 bytes (4535 MiB)

Creating archive: /mnt/5A4CFC164CFBEAA1/Backup/Archive/Archive.7z

Items to compress: 22122
Непонятно, в чем причина? Кто поможет?

7za - вызов из скрипта: что за фигня?

Добавлено: 27 фев 2020, 14:14
slant
Где-то нарушено экранирование переменных. Тут просто отладка нужна. Замените первую строчку на такую:
#!/bin/bash -x
Теперь скрипт будет при выполнении показывать результаты каждой команды, как именно они вызываются, и значения переменных. Смотрите вывод и найдете где оно не так архиватор вызывает.

7za - вызов из скрипта: что за фигня?

Добавлено: 27 фев 2020, 15:03
rogoznik
vromanov писал(а):
27 фев 2020, 13:33
$DIR4/Tools
Чтоб работала такая подстановка, нужно делать не так.
Вот так должно работать.

Код: Выделить всё

/usr/bin/7za a -r "${DIR4}/Tools.7z" "${DIR5}Tools/*" && /usr/bin/7za a -r "${DIR4}/MyHomeLib.7z" "${DIR6}MyHomeLib/*" 
Учите матчасть. Баш не так прост как кажется.

7za - вызов из скрипта: что за фигня?

Добавлено: 27 фев 2020, 16:38
vromanov
rogoznik писал(а):
27 фев 2020, 15:03
Код: Выделить всё

/usr/bin/7za a -r "${DIR4}/Tools.7z" "${DIR5}Tools/*" && /usr/bin/7za a -r "${DIR4}/MyHomeLib.7z" "${DIR6}MyHomeLib/*"

Учите матчасть. Баш не так прост как кажется.
Спасибо большое, все заработало. Буду учить матчасть