Нужен скрипт для выполнения такой задачи: в локалке из 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, насколько знаю, может только качать, но не удалять файлы)?
Вопрос в том, как на деле оформить команды между горизонтальными отчерками? Пробовал всяческие круглые скобки, пробовал expect - не помогло. Что посоветуете? Или есть способ все перечисленное сообщить smbclient'у в одну команду (smbget, насколько знаю, может только качать, но не удалять файлы)?
Во, спасибо большое! Проверил на том, что под рукой - сработало. А EOF - это end of file, я так понимаю? Т. е. индикатор того, что данные в источнике закончились?
Во, спасибо большое! Проверил на том, что под рукой - сработало. А EOF - это end of file, я так понимаю? Т. е. индикатор того, что данные в источнике закончились?
EOF - это произвольная строка, которую нужно указать дважды: после << и в конце. Она может быть любой, но для наглядности принято ставить что-то такое, что ассоциируется с концом набора данных.