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

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 18:55
abulaev2008
Сделал скрипт для копирования:
#!/bin/bash

SRC=/home/andrey/.../ #Откуда
DRS=/media/andrey/6623-39A3/Архив/ #Куда

size="$(du -sh $SRC)" # Подсчет размера источника
copy="$(du -sh $DRC)" # Подсчет размера назначения

(cp -pru $SRC $DRS &

while [$copy -lt $size]
do
percentages="$(echo "$copy/$size*100" | bc)" # Процент для копирования
copy="$(du -sh $DRC)"
sleep 1
echo "#Скопировано $copy. Всего: $size."
echo $percentages
done) | zenity --progress --title='Скрипт usb-copy-script' --text="Копирую..." --percentage=0 --auto-close

zenity --info --width=300 height--200 --title="Копирование закончено" --text="Копирование закончено. $SRC на флешке"
Zenity прогресс не движется, почему не пойму. Остальное все копирует и zenity --info по окончании копирования срабатывает.
Из-за чего?

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 19:04
colonel
abulaev2008 писал(а):
02 мар 2018, 18:55
Из-за чего?

имхо , не в ту строку скрипта поставили

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

 ....   | zenity --progress --title='Скрипт usb-....  бла-бла-бла ..... 

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 19:42
abulaev2008
colonel,
Как расплывчато. Да понимаю, что-то не то.
И так тоже вроде не логично:
.
...
...
echo $percentages
| zenity --progress --title='Скрипт usb-copy-script' --text="Копирую..." --percentage=0 --auto-close
done


спасибо за ответ. Да, от тебя colonel, конкретнее не ждал.

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 19:54
Chocobo

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

chocobo@desktop ~ $ copy=2
chocobo@desktop ~ $ size=12
chocobo@desktop ~ $ echo "$copy/$size*100" | bc
0
chocobo@desktop ~ $ copy=6
chocobo@desktop ~ $ size=100
chocobo@desktop ~ $ echo "$copy/$size*100" | bc
0

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 20:11
Chocobo
abulaev2008, используй percentages=$((100*$copy/$size))

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 20:16
colonel
abulaev2008 писал(а):
02 мар 2018, 19:42
Как расплывчато. Да понимаю, что-то не то.
понимать что что-то не так - вот это расплывчато , а то что не в той строке , вроде как более конкретизировано ....
abulaev2008 писал(а):
02 мар 2018, 19:42
И так тоже вроде не логично:....

имхо, не логично

собсно, если не так важен показ % скопрированного (кстати непонятно где он у вас должен отражаться по echo "#Скопировано $copy. Всего: $size." и echo $percentages ) то можно просто сделать прогресс бар с бегунком (пульсате) и пока идёт процесс копирования будете наблюдать бегающий ползунок , а по окончании копирования - вывод другого окна зенити с сообщением конца операции. Пример такого решения можете посмотреть в теме Многостраничный PDF из набора JPG

если не устраивает " бегунок" ищите как вкатить в бар зенити показ по процентам выполненного копирования ...

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 20:49
abulaev2008
colonel, видел этот ссылку пдф, не понял; Литературы ект, а экранами, чтоб подсматривать, окружится не могу.

Chocobo, Не правильно проценты считаю? или bc округляет до целого?
У меня есть еще вопросов по системд.

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 21:23
Chocobo
abulaev2008 писал(а):
02 мар 2018, 20:49
Не правильно проценты считаю?
смотри #24 - при любых входящих значениях твоя конструкция возвращает 0
abulaev2008 писал(а):
02 мар 2018, 20:49
У меня есть еще вопросов по системд.
В рамках отдельного топика)

Автоматическое копирование на флешку

Добавлено: 02 мар 2018, 21:39
abulaev2008
Chocobo писал(а):
02 мар 2018, 21:23
В рамках отдельного топика)
Вопросы по автокопированию на USB

Автоматическое копирование на флешку

Добавлено: 04 мар 2018, 13:03
abulaev2008
colonel, вставил --pulsate,
#!/bin/bash

SRC=/..../ #Откуда
DRS=/..../ #Куда

zenity --question --title="Продолжим?" --text="Вы желаете скопировать $SRC?" --ok-label="Да" --cancel-label="Нет"
if [ $? = 0 ] ; then
(
size="$(du -sb $SRC)" #Подсчет размера источника
copy="$(du -sb $DRC)" #Подсчет размера назначения

(cp -pru $SRC $DRS &

while [ "$copy" -lt "$size" ]
do
percentages="$(("100*$copy/$size") | bc)" # Процент для копирования
copy="$(du -sb $DRC | awk '{print $1}')"

echo $percentages
sleep 1
done) | zenity --progress --pulsate --title='Скрипт usb-copy-script' --text="Выполняется копирование $SRC..." --auto-close

zenity --info --width=300 height--200 --title="Копирование закончено" --text="Все на месте $DRS"

)
else
fi
Но так и не соображу почему --прогресс не заполняется? Есть подсказки?

Автоматическое копирование на флешку

Добавлено: 04 мар 2018, 17:38
colonel
abulaev2008 писал(а):
04 мар 2018, 13:03
Есть подсказки?
так они были уже озвучены
abulaev2008 писал(а):
04 мар 2018, 13:03
Но так и не соображу почему --прогресс не заполняется?
а чем он должен заполняться?
с пульсате пока выполняется задание просто бегунок туда-сюда бегает в "полоске" прогресс-бара
abulaev2008 писал(а):
02 мар 2018, 20:49
видел этот ссылку пдф, не понял; Литературы ект, а экранами, чтоб подсматривать, окружится не могу.
я не спрашивал видели вы эту ссылку (тему) или не видели, а сказал что там вы можете найти пример как в скрипте реализован прогресс-бар (там он с пульсате)
не пойму чего сложного было в том чтобы зайти на ту тему и скачать на первой странице маленький текстовый файлик скрипта что бы посмотреть где и как вписан зенити...
вот вам фрагмент того скриптика

....
#Создание временного каталога и сборка конечного файла из его содержимого
mkdir Сконвертированное ;
convert *.* -resize $res% -quality $qua ./Сконвертированное/j.$gf|zenity --progress --width 250 --title='Конвертирование изображений'$gf --pulsate --auto-close; convert ./Сконвертированное/j*.* Result_$(date +%d--%m-%y-%R).pdf |zenity --progress --width 250 --title='Идёт сборка PDF' --pulsate --auto-close;

#Удаление временного каталога с предконвертированными изображениями
rm -r Сконвертированное|zenity --warning --width 350 --timeout=10 --title=" " \
--text="Конвертация в PDF завершена\n\Конечный файл Result_(текущее дата_время) в каталоге -\n\$direc"
.....
я так понял , что у автора темы всё работает
вот вам ещё для примера фрагмент немного другой версии скрипта
convert ./Convert_tmp/j*.* "$out"--$(date +%d.%m.%y--%R).pdf|zenity --progress --width 350 --title='Идёт сборка PDF' --pulsate --auto-close;
if [ "$?" = 1 ]
then
zenity --info --timeout=7 --title="Отмена операции" \
--text="Операция конвертации отменена пользоватем"
exit
fi

rm -r Convert_tmp|zenity --warning --width 500 --height 200 --timeout=30 --title=" " \
--text="Конвертация в PDF завершена \n\n\n\ в каталоге $direct \n\n\ Создан файл PDF - $out +текущие дата-время";
или вот ещё один фрагмент с зенити из скриптика для склейки небольших видеоклипов
# Объединение $number mpg в один файл
exec xterm -T "Log webrec" -e ffmpeg -i concat:"$allfiles" -c copy intermedi_all.mpg|zenity --progress --width 350 --title=" $number MPG сливаются в intermedi_all.mpg " --pulsate --auto-close;
cd .. ; mv -fi ./Convert_mpg/intermedi_all.mpg intermedi_all.mpg; rm -r Convert_mpg;

#Конвертация mpg2avi исходный каталог из /Convert_mpg
#datapdf="`date +%d-%m-%y_%H-%M-%S`";
datapdf="-$(date +%d.%m.%y--%R)";
output=$out-$datapdf;
exec xterm -T "Log webrec" -e ffmpeg -i intermedi_all.mpg -qscale:v 2 "$output".avi|zenity --progress --width 350 --title="Конвертация intermedi_all.mpg в AVI" --pulsate --auto-close;

rm -r intermedi_all.mpg;

echo|zenity --warning --width 500 --timeout=30 --title=" " \
--text=" Слияние файлов в каталоге \n\$direc \n\n\ ЗАВЕРШЕНО \n\n\создан объединённый файл AVI - $output "

это всё мои рабочие скрипты и прогресс бар в них замечательно пульсирует пока выполняется задание (то которое непосредственно перед " |zenity....."

Автоматическое копирование на флешку

Добавлено: 05 мар 2018, 07:51
abulaev2008
colonel писал(а):
04 мар 2018, 17:38
прогресс бар в них замечательно пульсирует
так и у меня прогресс бар пульсирует.
Вопрос: почему не заполняется прогресс без --пульсате

Автоматическое копирование на флешку

Добавлено: 05 мар 2018, 08:08
colonel
abulaev2008 писал(а):
05 мар 2018, 07:51
так и у меня прогресс бар пульсирует.
в #30 не сказано что работает , написано что вставили пульсате ... и всё равно не заполняется.
Sc1.png

abulaev2008 писал(а):
05 мар 2018, 07:51
Вопрос: почему не заполняется прогресс без --пульсате

вот ещё пример из инета без пульсате

Пример. Сканируем тучи документов и выполняем обработку изображений офисных документов в пару кликов. Секретарша будет на вас молится. Конечный документ А4 в 200dpi обычного вида (типа счёта с синей печатью и подписью) имеет типичный вес от 60 до 200 килобайт и формат png. Нужны установленные sane-utils и ImageMagic.

-----8<-----

#!/bin/sh

TMP="image$$"

while true; do

scanimage \
-p \
--format tiff \
--resolution 200 \
-x 215 -y 297 \мер из инета без пульсате
2> ~/$TMP.tiff \
3>&1 1>&2 2>&3 \
| perl -e '$/="\r";$|=1;while(){s/^\D+(\d+)\D.*$/$1\n/g;print;}' \
| zenity \
--progress \
--title="Сканирование" \
--text="Сканирую изображение. Пожалуйста, подождите..."

if [ $? -eq 0 ]; then
FILE=""
while [ -z "$FILE" ]; do
FILE=`zenity \
--entry \
--title="Обработка" \
--text="Укажите имя файла для сохранения"`
done
convert $TMP.tiff -level 20%,80%,0.4 -format PNG8 -colors 8 $FILE.png
else
killall scanimage
fi

rm -f $TMP.tiff

zenity \
--question \
--title="Продолжим?" \
--text="Вы желаете продолжить сканирование? Не забудьте положить в сканер новый лист." \
|| return

done

-----8<-----
(с) https://webhamster.ru/mytetrashare/index/mtb0/18
зы
но этот скрипт про сканирование у мну не заработал как надо(чего то сканировал но ни выхлопа ни запросов на имя и тд , только прогресс бар висит открытый и не показывает прогресс и всё) а не то что прогресс сканирования показывался бы
может скопировал чего не правильно ... :dntnw:
зы2
:hm: всёж оказывается отсканил страничку в хомяк с файл с именем image12113.tiff
но ни запроса на имя , ни окна про обработку, ни запроса на новое сканирование...

зы3
abulaev2008, нашёлся аот такой простой пример работающего прогрессбара

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

  ( for i in {0..100};do echo -e "# $i\n$i";sleep .5;done ) | zenity --title=" бла бла бла  ...." --progress --percentage=0 --auto-close        
и есть ещё один .. по скачиванию wget -ом (грят рабочий , но сначала посмотрю)
проверил ... и вполне себе работает

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

 wget $(zenity --text "Вставьте ссылку на файл" --entry) --trust-server-names=on --restrict-file-names=nocontrol 2>&1|sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/'|sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]\+.\) \(.*\)/\1\n# Скорость \2\/s, осталось \3/'|zenity --progress --percentage=0 --title="Загрузка файла" --auto-close  

Автоматическое копирование на флешку

Добавлено: 07 мар 2018, 16:55
abulaev2008
colonel,
Все указанные ссылки уже раньше смотрел (гугл),
и мне не получается указать зенити прогресс (без пульсате) заполнение прогресса при копировании (команда cp ...).
Скорее всего в цикле чего не то указываю:
size="$(du -sh $SRC)" # Подсчет размера источника (в ext4) жесткий диск
copy="$(du -sh $DRC)" # Подсчет размера назначения (в Fat32) флешка

Короче: каталог "copy" получается больше по размеру чем "size" Как? разница в форматах?

Или использовать rsync -avr --progress /.../ /.../ && /.../ /.../ для синхронизации

Автоматическое копирование на флешку

Добавлено: 07 мар 2018, 18:15
rogoznik
А зачем тебе видеть этот прогресс? Покажи сообщение что идет копирование, пусть попульсирует, а потом покажи сообщение что копирование завершено.

Автоматическое копирование на флешку

Добавлено: 07 мар 2018, 18:51
colonel
abulaev2008 писал(а):
07 мар 2018, 16:55
не получается указать зенити прогресс (без пульсате) заполнение прогресса при копировании (команда cp ...).
Скорее всего в цикле чего не то указываю:.....
может подсчёт , тем более что вы сами говорите что цЫфири " дико не бьют" или может чего не так в строках ...
я вот тута немного от обратного поэкспериментировал с вполне рабочим скриптом копирования из инета по wget....
когда всё в одной строке, как оно приведено под спойлером - всё нормально работает , только как немного по другому строки - так или не работает совсем или прогресс бар не показывает что должен... (в общем ...капризная штучка такой бар, а пульсате более неприхотлива )
abulaev2008 писал(а):
07 мар 2018, 16:55
... Или использовать rsync -avr --progress ..
эт только вам самому решать ,
я такое не пользу., максимум что сделал -скриптик по ПКМ для быстрого бекапа содержимого папки в которой текущая работа (фотки , или доки или... )

Автоматическое копирование на флешку

Добавлено: 07 мар 2018, 20:49
abulaev2008
darkfenix,
darkfenix писал(а):
07 мар 2018, 18:15
А зачем тебе видеть этот прогресс? Покажи сообщение что идет копирование, пусть попульсирует, а потом покажи сообщение что копирование завершено.
, А зачем,?, а как , если ? а для чего.
Так все работает, но для чего придумали прогресс...
пульсате это просто.

Автоматическое копирование на флешку

Добавлено: 07 мар 2018, 20:59
Dja
abulaev2008 писал(а):
17 фев 2018, 12:30
Ну нах
 ! Сообщение из: Dja
Предупреждение. Пока устное.
Bill Williamson писал(а):
17 фев 2018, 11:34
rsync для односторонней
А разве двухстороннюю не умеет?
abulaev2008 писал(а):
17 фев 2018, 14:21
заработает или нет у юзера без спецобразования эта дружелюбная система, когда его приплющит на эту идею
Обычного юзера на эту идею не "приплющит"

Автоматическое копирование на флешку

Добавлено: 07 мар 2018, 21:14
abulaev2008
Dja, ?

Автоматическое копирование на флешку

Добавлено: 07 мар 2018, 23:09
Dja
Я ручками синкаю. Тем же rsync. Если как говорится надо часто синкать, значит можно сделать алиас. И процесс весь в консоли видно. Как...уже обсуждалось в другой теме по бэкапам. Если интересует - поиск сверху.