URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9519
[ Назад ]

Исходное сообщение
"Архивирование, сжатие и копирование поддерева директорий на уда"

Отправлено student1984 , 07-Авг-12 18:42 
Добрый день.
Нам задали написать 2 скрипта, они вроде и легкие, но для меня оказались неподьемной задачей. Помогите освоить
Скрипт 1:Архивирование, сжатие и копирование поддерева директорий на удаленную машину «в потоке» с последующим разжатием и разархивированием. В процессе копирования должен выводиться счетчик прогресса (сколько файлов/байт скопировано, сколько осталось, текущая скорость).
Скрипт 2: Написать скрипт, осуществляющий операции над файлами в несколько потоков одновременно; команда операции и ее аргументы передаются в скрипт в качестве параметров. Число потоков определяется значением n*<число процесcоров>.

Содержание

Сообщения в этом обсуждении
"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено Af. , 07-Авг-12 21:12 
Посмотри в сторону SpaceFM + вспомни/узнай особенности грамматики голованов. Это подсказка. Если не поможет, то может ну её, эту учёбу. Зачем терять время на мучения над противным. Надо получать удовольствие от мучений, иначе нет успеха.

Мой препод по матану, ходил меж рядов, меж нас сопящих над зачётом и говорил: надо мучаться, надо. Зачёты потом ставил.


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 08-Авг-12 01:38 
> Посмотри в сторону SpaceFM + вспомни/узнай особенности грамматики голованов. Это подсказка.
> Если не поможет, то может ну её, эту учёбу. Зачем терять
> время на мучения над противным. Надо получать удовольствие от мучений, иначе
> нет успеха.
> Мой препод по матану, ходил меж рядов, меж нас сопящих над зачётом
> и говорил: надо мучаться, надо. Зачёты потом ставил.

твой препод прав.

толко нах тут GUI вываливать, в ответ на вопрос скриптования в командной оболочке?

PS
Ты явно еще не намучался (причем к форуму это никакого отношения не имеет)



"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено Af. , 08-Авг-12 09:49 
> PS
> Ты явно еще не намучался (причем к форуму это никакого отношения не
> имеет)

Я и сам мучался, и других мучал, и даже не глядя мимо пропускал, черкая отлы. А потом ещё думал над этим, других выслушивал. Некоторое время слежу за Вашими постами, при случае ( с чего бы это :) ). Есть проблема, среди прочих. Если человек не может пройти экзамен/зачёт, ему помогли посторонние и это считается хорошим стилем, то после этого начинается Чернобыль, Саяно-Шушенская ГЭС, победно утопленный Курск, по дурости убитые заложники, утонувшие буровые с погибшим коллективом, смытый дождём Крымск и 50+тыс. человек. В перечисленных ситуациях, если внимательно собрать инфу из общедоступных источников, среди принимавших решения тупо не было образованного человека. Диплом должен быть дипломом, а не прошлогодним календариком.

Я не советую Вам делать выводы о незнакомых людях и незнакомых предметах.

Вы, молодой человек, в поставленной программной задаче разбираетесь явно средне, судя по Вашим текстам в теме. Более того, не слишком догадливы или не слишком компенсируете это усидчивостью, судя по реакции. Склонны к эмоциональным всплескам (см. другие темы на форуме), что частично объясняет НЕусидчивость, скоропалительность в выводах и собственных мнениях.


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 07-Авг-12 22:54 
> Добрый день.
> Нам задали написать 2 скрипта, они вроде и легкие, но для меня
> оказались неподьемной задачей. Помогите освоить
> Скрипт 1:Архивирование, сжатие и копирование поддерева директорий на удаленную машину
> «в потоке» с последующим разжатием и разархивированием. В процессе копирования
> должен выводиться счетчик прогресса (сколько файлов/байт скопировано, сколько осталось,
> текущая скорость).
> Скрипт 2: Написать скрипт, осуществляющий операции над файлами в несколько потоков одновременно;
> команда операции и ее аргументы передаются в скрипт в качестве параметров.
> Число потоков определяется значением n*<число процесcоров>.

на чем писать?


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено student1984 , 08-Авг-12 00:02 
>[оверквотинг удален]
>> Нам задали написать 2 скрипта, они вроде и легкие, но для меня
>> оказались неподьемной задачей. Помогите освоить
>> Скрипт 1:Архивирование, сжатие и копирование поддерева директорий на удаленную машину
>> «в потоке» с последующим разжатием и разархивированием. В процессе копирования
>> должен выводиться счетчик прогресса (сколько файлов/байт скопировано, сколько осталось,
>> текущая скорость).
>> Скрипт 2: Написать скрипт, осуществляющий операции над файлами в несколько потоков одновременно;
>> команда операции и ее аргументы передаются в скрипт в качестве параметров.
>> Число потоков определяется значением n*<число процесcоров>.
> на чем писать?

bash, просто bash ^-^
Маленькая поправочка: число процессов а не процессоров. Не досмотрели


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 08-Авг-12 00:19 
скрипт 1: доступ к удаленной машине по каким протоколам возможен?
скрипт 2: список команд, которые должны обрабатываться

PS
НЕТ в bash МНОГОПОТОЧНОСТИ (в том смысле, что Вы вкладывали в свой вопрос). Есть возможность запустить задачу в отдельном процессе (взаимодействие с этим процессом остается на Ваших плечах конечно же). Потоки в терминах bash - это просто источники/получатели данных, а не параллельная обработка запросов.

В связи с этим встает очевидный вопрос - уточните Вашу исходную задачу (банально процитируйте ее, как Вам поставили)

PSS
Твою мать!!! стыдно перед Всеми!!! Заработался про потоки на другую задачу.... ( Сам же говорю, а мысли где-то далеко были. Еще раз прошу прощения у Всех. Банальный "поток" (в терминах автора) tar|gzip|ftp.


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено student1984 , 08-Авг-12 00:37 
> скрипт 1: доступ к удаленной машине по каким протоколам возможен?
> скрипт 2: какие список допустимых (поддерживаемых операций)

1: Преподаватель сказал как выберем (пусть фтп будет)
2: То же самое ( пускай будут какие - нибудь простые операции )


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 08-Авг-12 00:45 
>> скрипт 1: доступ к удаленной машине по каким протоколам возможен?
>> скрипт 2: какие список допустимых (поддерживаемых операций)
> 1: Преподаватель сказал как выберем (пусть фтп будет)
> 2: То же самое ( пускай будут какие - нибудь простые операции
> )

я предыдущий свой пост поправил. почитайте. Вы, видимо, ответили мне до последней редакции...

PS
ИМХО Вам стот изучить командную строку *nix (ограничений же в задании на вызов стандартных утилит нет)



"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено student1984 , 08-Авг-12 01:05 
>>> скрипт 1: доступ к удаленной машине по каким протоколам возможен?
>>> скрипт 2: какие список допустимых (поддерживаемых операций)
>> 1: Преподаватель сказал как выберем (пусть фтп будет)
>> 2: То же самое ( пускай будут какие - нибудь простые операции
>> )
> я предыдущий свой пост поправил. почитайте. Вы, видимо, ответили мне до последней
> редакции...
> PS
> ИМХО Вам стот изучить командную строку *nix (ограничений же в задании на
> вызов стандартных утилит нет)

В задании было написано именно так как я написал в первом посте...не звонить же преподавателю в час ночи :)
А насчет многопоточности я думаю имеется разделение задачи на несколько процессов, скажем чтобы, к примеру, вывод из файла n-го числа строк производился одним процессом, остальных другим процессом. К сожалению большего сказать не могу, т.к. пока в этом плаваю. Завтра уточню обязательно у преподавателя


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 08-Авг-12 01:32 
>[оверквотинг удален]
>>> 1: Преподаватель сказал как выберем (пусть фтп будет)
>>> 2: То же самое ( пускай будут какие - нибудь простые операции
>>> )
>> я предыдущий свой пост поправил. почитайте. Вы, видимо, ответили мне до последней
>> редакции...
>> PS
>> ИМХО Вам стот изучить командную строку *nix (ограничений же в задании на
>> вызов стандартных утилит нет)
> В задании было написано именно так как я написал в первом посте...не
> звонить же преподавателю в час ночи :)

Не обязательно же было прямо сейчас отвечать. Подождите утра, уточните вопрос.

> А насчет многопоточности я думаю имеется разделение задачи на несколько процессов, скажем
> чтобы, к примеру, вывод из файла n-го числа строк производился одним
> процессом, остальных другим процессом. К сожалению большего сказать не могу, т.к.
> пока в этом плаваю. Завтра уточню обязательно у преподавателя

Я завел Вас немного не в ту сторону - прошу прощения. Немного поясню:

- процесс - это программа, которая последовательно исполняет инструкции, которые в ней написали

- многопоточность/потоки - это когда одна программа запускает НЕСКОЛЬКО задач одновременно, которые решаются в ОДНО И ТО ЖЕ ВРЕМЯ (несколько потоков), а не последовательно, как в предыдущем случае, и взаимодействуют м/ду собой

- к bash многопоточность (т.е параллельный запуск решения нескольких задач, в пределах одного процесса=программы) никакого отношения не имеет. Именно тут я увел Вас в сторону.
- для bash термин "поток" означает всего лишь входящие/исходящие данные.

PS
ключевое слово для гугла "конвейер"


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 08-Авг-12 01:14 
>> скрипт 1: доступ к удаленной машине по каким протоколам возможен?
>> скрипт 2: какие список допустимых (поддерживаемых операций)
> 1: Преподаватель сказал как выберем (пусть фтп будет)
> 2: То же самое ( пускай будут какие - нибудь простые операции
> )

простейшая операция - получить файл с удаленного сервера : man wget.

читайте опции и несколько процессов из скрипта одновременно запустить не проблема (это проще чам средствами шела подобные задачи решать на прямую)



"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 08-Авг-12 02:04 
>>> скрипт 1: доступ к удаленной машине по каким протоколам возможен?
>>> скрипт 2: какие список допустимых (поддерживаемых операций)
>> 1: Преподаватель сказал как выберем (пусть фтп будет)
>> 2: То же самое ( пускай будут какие - нибудь простые операции
>> )
> простейшая операция - получить файл с удаленного сервера : man wget.
> читайте опции и несколько процессов из скрипта одновременно запустить не проблема (это
> проще чам средствами шела подобные задачи решать на прямую)

как вариант - запуск несколько процессов удаления файлов и игнорирование отсутствия файлов.


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 08-Авг-12 00:55 
-

"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено student1984 , 08-Авг-12 16:10 
Всем спасибо, сам разобрался и написал этих 2 скрипта :)

"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено pavlinux , 13-Авг-12 06:33 
> Всем спасибо, сам разобрался и написал этих 2 скрипта :)

Гонишь? Написал на баше ftp-клиент и архиватор???? =-о


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено LSTemp , 16-Авг-12 07:48 
>> Всем спасибо, сам разобрался и написал этих 2 скрипта :)
> Гонишь? Написал на баше ftp-клиент и архиватор???? =-о

не -  ну зачем так жестоко? ) там же не было ограничения на использование из баша других команд. весь загон делался на а-ля "многопоточность".


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено Guest , 05-Ноя-13 06:38 
КАК? КАК ТЫ ИХ НАПИСАЛ???? Выложи их код пожалуйста


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено Guest , 05-Ноя-13 06:42 
> Скрипт 1:Архивирование, сжатие и копирование поддерева директорий на удаленную машину
> «в потоке» с последующим разжатием и разархивированием. В процессе копирования
> должен выводиться счетчик прогресса (сколько файлов/байт скопировано, сколько осталось,
> текущая скорость).

Первую половину задания делаем через tar gzip и ssh. Но как быть с прогресс-баром? Сторонние утилиты типо pv,bar использовать нельзя. Нужно выполнить задание одной строчкой. Есть у кого какие-либо идеи насчет этого проклятого однострочного прогресс-бара?



"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено universite , 22-Ноя-13 02:28 

> Первую половину задания делаем через tar gzip и ssh. Но как быть
> с прогресс-баром? Сторонние утилиты типо pv,bar использовать нельзя. Нужно выполнить задание
> одной строчкой. Есть у кого какие-либо идеи насчет этого проклятого однострочного
> прогресс-бара?

Профессор, наверное тот же :)

P.S. тут пора сооружать гитхаб :)


"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено Аноним , 23-Ноя-13 23:23 
Один ответ на весь топик - rsync :)

"Архивирование, сжатие и копирование поддерева директорий на уда"
Отправлено guest , 19-Дек-13 07:45 
А ответ оказывается в том, что нужно удаленно каждую секунду проверять размер файлов командами либо stat либо du, и основываясь на текущем размере вычислять скорость, то есть "тек. размер - предыдущ. размер = скорость байт/сек" и отсюда уже мастерить прогресс бар со скоростью, остатком, и сколько уже скопировано. Ну и плюс можно чекать кол-во файлов в удаленной папке, и выводить сколько скопировано.