smbclient в bash-скрипте (неинтерактивный режим)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

mieczeslaw
Сообщения: 139
ОС: xubuntu 12.10

smbclient в bash-скрипте

Сообщение mieczeslaw »

Доброго всем времени суток!

Нужен скрипт для выполнения такой задачи: в локалке из N windows-машин (IP-адреса у них идут по порядку от 192.168.100.1 до 192.168.100.N) подключаться к ним через smbclient и качать определенные файлы (известен путь, где файлы лежат, и начало имени файла - одинаковое для всех), затем - удалять эти файлы с windows-машин. Как я понимаю, выглядеть это сооружение будет примерно так:

Код:

#!/bin/bash i=1 number_of_comps=29 #число компов в локальной сети user=xxxxx #логин password=yyyyy #пароль until [ $i = number_of_comps ] do #действия для каждой машины smbclient -U$user%$password //192.168.100.$i/папка_с_файлами_для_сбора __________________________________________________________________ #теперь smbclient выводит приглашение, и в это приглашение нужно отправить примерно такие команды: prompt mget одинаковое_начало_имен* rm одинаковое_начало_имен* quit __________________________________________________________________ #конец работы с smbclient'ом, увеличиваем счетчик на единицу и проходим в начало цикла let "i+=1" done


Вопрос в том, как на деле оформить команды между горизонтальными отчерками? Пробовал всяческие круглые скобки, пробовал expect - не помогло. Что посоветуете? Или есть способ все перечисленное сообщить smbclient'у в одну команду (smbget, насколько знаю, может только качать, но не удалять файлы)?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5403
ОС: Gentoo

Re: smbclient в bash-скрипте

Сообщение /dev/random »

mieczeslaw писал(а):
15.12.2009 17:43
Вопрос в том, как на деле оформить команды между горизонтальными отчерками? Пробовал всяческие круглые скобки, пробовал expect - не помогло. Что посоветуете? Или есть способ все перечисленное сообщить smbclient'у в одну команду (smbget, насколько знаю, может только качать, но не удалять файлы)?

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

smbclient -U$user%$password //192.168.100.$i/папка_с_файлами_для_сбора <<EOF
prompt
mget одинаковое_начало_имен*
rm одинаковое_начало_имен*
EOF
Спасибо сказали:
mieczeslaw
Сообщения: 139
ОС: xubuntu 12.10

Re: smbclient в bash-скрипте

Сообщение mieczeslaw »

Во, спасибо большое! Проверил на том, что под рукой - сработало. :) А EOF - это end of file, я так понимаю? Т. е. индикатор того, что данные в источнике закончились?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5403
ОС: Gentoo

Re: smbclient в bash-скрипте

Сообщение /dev/random »

mieczeslaw писал(а):
15.12.2009 18:07
Во, спасибо большое! Проверил на том, что под рукой - сработало. :) А EOF - это end of file, я так понимаю? Т. е. индикатор того, что данные в источнике закончились?

EOF - это произвольная строка, которую нужно указать дважды: после << и в конце. Она может быть любой, но для наглядности принято ставить что-то такое, что ассоциируется с концом набора данных.
Спасибо сказали:
mieczeslaw
Сообщения: 139
ОС: xubuntu 12.10

Re: smbclient в bash-скрипте

Сообщение mieczeslaw »

Понял. Спасибо еще раз!
Спасибо сказали: