Скрипт для копирования файлов по сети

Все о локальных сетях и сетевом оборудовании

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

Ниже будет представлены 2 скрипта, использующие «язык VBS», для элементарного перемещения файла из одной сетевой папки, (она конечно же, должна быть «расшарена») в другую.

vbs скрипт копирования файлов по локальной сети

  1. Данный скрипт подойдет для поштучного перемещения файлов из одной папки в другую:

WScript.Echo «Готово.» # данные строки выводят текстовое уведомление/сообщение

WScript.Quit(0)
Dim fso
Set fso = CreateObject(«Scripting.FileSystemObject»)
fso.CopyFile «\1-4ffc2e2aa34941Рабочий столTest1.vbs «, # в данной строке указывается адрес папки, из которой будет производиться копирование

«C:Documents and SettingsАдминистраторРабочий столTest» #адрес папке куда будет копироваться файл.

Скрипт копирования файлов и папок по сети

  1. Для того чтобы скопировать всё содержимое папки используется следующий скрипт:

WScript.Quit(0)
Const OverWriteFiles = True # три нижние строки определяют параметры копирование всех файлов в из папки
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
objFSO.CopyFolder «\1-4ffc2e2aa34941Рабочий столTest» ,
» C:Documents and SettingsАдминистраторРабочий столTest » , OverWriteFiles

Как видите, скрипт наилегчайший. Вам останется только создать текстовый документ, скопировать код и изменить его адреса в соответствии с вашей сетью (а именно те строки, где находятся адреса откуда и куда нужно скопировать файлы). После этого требуется сохранить скрипт с английской раскладкой и разрешением «.vbs».

Если копируемые файла требуется обновлять постоянно, можно полностью автоматизировать данный процесс, создав в «Планировщике задач» сценарий и выставить в параметрах временные интервалы.

Данные скрипты являются одними из самых элементарных. Можно воспользоваться «Командной строкой» и командной «xcopy /?».

После запуска команды вы можете выбрать те параметры, которые вам необходимы, и после этого создать собственный скрипт.

Содержание

Работая в большой компании меня попросили скопировать файл размером 1Мб на удаленные машины под управление Windows XP Pro.

Все было бы хорошо, если бы не количество ПК, на которые необходимо было копировать файл. Их оказалось около 800!. Хорошей новостью было то, что на всех ПК были идентичные настройки, т.е. на каждом ПК был прописан пользователь с правами администратора и разрешен доступ к дискам по сети. У меня имеется рабочий ноутбук, на котором утановлена Xubuntu 10.4, его-то я и задумал использовать, так как много раз читал и слышал о скриптах в Linux и ни разу не доводилось писать их самому.

Перебирая в голове возможные варианты я сразу отмел на последний план вариант с монтированием сетевого каталога, т.к хотелось какой-то легкости и универсальности. Посоветовавшись в IRC на канале #ubuntu-ru, мне было предложено использовать smbclient. Как я и поступил.

Читайте также:  Сам по себе уменьшается звук на компьютере

Проверка сетевого доступа.

Для начала я посмотрел синтаксис smbclient.

Меня интересовали параметры -U и -c. В параметре -U передается имя пользователя, от чьего имени будем выполнять действия. В параметре -c передается строка, состоящая из команд smbclient’а, разделенных знаком «;». Поиграв немного с различными вариантами я нашел свой вариант:

После тестирования на 2-3 удаленных ПК я озадачился мыслью: «Как же имея список IP адресов в текстовом файле я буду подставлять значения в терминал?». И тут же понял, что необходимо приступать к написанию скритпа.

Пишем скрипт

Имея в запасе немного времени и огромное желание научиться работать со скриптами, я начал осваивать «Bash-Scripting». Посмотрев примеры я сразу для наглядности выделил переменные.

В моем случае это:

Далее, полистав руководство по Баш-Скриптингу, я нашел как осуществить чтение строк из файла, что давало мне возможность редактировать список хостов независимо от основного скрипта:

Вместо вывода на экран я подставил выполнение команды smbclient с аргументами.

При выполнении этого цикла я обнаружил, что последняя строка из файла считывается, но не используется. Из-за сжатых сроков, я решил добавить строку и записать в нее произвольное значение.

В итоге я пришел к такому варианту, при котором аргументы передаются из переменных:

Заключение

После написания данного скрипта я получил хороший инструмент для сравнительно быстрого копирования файлов по сети. Со временем в скрипт можно добавлять различные проверки (к примеру: убирать дубликаты IP адресов в списке), добавлять команды… Список ограничевается только вашими потребностями и фантазией.

Надеюсь данное руководство найдет своего читателя и поможет приобрести первый опыт по написанию Bash-Script’ов, как помог мне.

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Сегодня мы узнаем про то, что такое bat файл и заодно создадим один из них.

Думаю, что многие, так или иначе, периодически создают резервные копии (так называемые backup -ы) тех или иных файлов и папок.

Вроде все привычно и делать ничего особо сложного не надо: вставить флешку, открыть " Мой компьютер ", найти что надо скопировать, выделить, тыкнуть мышкой, выбрать "скопировать", перебраться в нужный каталог, тыкнуть "вставить" и тд.

Но зачастую все эти клики и лишние телодвижения несколько утомляют и отнимают ценное время, особенно при частых копированиях одних и тех же данных. В этой статье я расскажу как автоматизировать этот процесс посредством консоли, а точнее написания такой штуки как bat файл .

скидки от 50% Хотите знать и уметь больше?

Обучим, расскажем, покажем, трудоустроим!
Станьте опытным пользователем, администратором серверов и сетей, веб-дизайнером или кем-то из смежной сферы!

Bat файл – что к чему, вводная

Для начала немного о том, что такое bat файл , зачем он нужен и с чем его (или их) едят. Дабы не изобретать велосипед воспользуюсь выдержкой из Википедии:

Пакетный файл (т.е bat файл, от англ. batch file ) — текстовый файл в MS-DOS, OS/2 или Windows , содержащий последовательность команд, предназначенных для исполнения командным интерпретатором.

Читайте также:  Работает ли gps без сим карты

После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM или CMD.EXE ) читает его строка за строкой и последовательно исполняет команды.

Пакетный файл — аналог shell script в Unix -подобных операционных системах.

Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера.

Примерами таких операций могут служить — обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п.

Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for ), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного — 1 или большее значение).

Пакетные файлы в DOS имеют расширение . bat ; для других операционных систем они могут иметь другие расширения — например, . CMD в Windows NT и OS/2 , или .BTM в 4DOS или подобных оболочках.

С теорией разобрались, приступим к, собственно, практике, а именно созданию bat-ника.

Как создать bat файл и использовать его

Давайте подготовим небольшое тестовое поле, чтобы было на базе чего экспериментировать. Откройте мой компьютер и создайте на диске C: папочку test . Зайдите в неё и создайте в ней папку testcopy .

Накидайте туда файлов (штук 5-10 ) – фотки, документы и тд и тп (любых короче). Поле для экспериментов готово. Далее нам надо создать, собственно, сам bat файл по нажатию на который у нас будет происходить копирование папки C: est estcopy в, скажем, папку C: estackup . Создавать вторую папку (которая backup ) не надо – она будет появляться автоматически.

Создать bat очень просто. Жмем правой кнопкой мышки там где хотим его создать (расположение не важно – можно прямо на рабочем столе) и выбираем " Создать " – " Текстовый документ ".

Задаем созданному файлу название и открываем его блокнотом или любым другим текстовым редактором. Т.е. на данный момент мы имеем открытый текстовый файлик, который называется, допустим, копирование.txt .

Добавляем в файл команду, например, для копирования

Далее, собственно, нам в этот файлик нужно ввести команду, которая будет воспроизводиться по средством консоли ( cmd ) при запуске этого файла. В данном случае мы воспользуемся командой xcopy ибо именно она позволяет копировать файлы, каталоги и подкаталоги. Учитывая все пути у нас получится следующая команда:

xcopy C: est estcopy C: estackup /f /i /y /s

Разъясняю что тут к чему:

  • xcopy – это сама команда;
  • C: est estcopy – это источник, т.е. папка откуда копируются файлы и каталоги;
  • C: estackup – это результат, т.е. место, куда будут скопированы файлы и каталоги;
  • /f /i /y /s – дополнительные параметры синтаксиса для команды xcopy (см.синтаксис ниже по тексту).

Количество строчек может быть любым, т.е. если Вам надо скопировать 100 папок, Вы пишете 100 строчек в одном файле и меняете в них только пути.

Читайте также:  Продать машину по доверенности после смерти владельца

Далее, касательно синтаксиса (какие дополнительные параметры есть, какие можно дописать и зачем они нужны).

Какие есть (т.е. те, что я указал в данном примере):

  • /f – выводит имена исходных файлов и файлов-результатов в процессе копирования
  • /i – создает новый каталог в случае, если тот отсутствует в конечном пути
  • /y – перезаписывает файл в случае, если он уже есть
  • /s – копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.

Как по мне – это основной список параметров необходимых для "тихого" копирования, т.е. без лишних вопросов о перезаписи, создания каталогов и прочей шушеры. Касательно остального синтаксиса можно почитать, например, тут.

Далее нам надо сменить формат файла с txt на bat . Делается это следующим образом.

Меняем формат файла и пробуем его запустить

Сначала открываем " Мой компьютер ", там переходим " Сервис " – " Свойства папки " – " Вид " и снимаем галочку " Скрывать расширение для зарегистрированных типов файлов ".

Жмем " Применить " и " Ок ". Теперь мы можем менять расширение известных системе файлов, а посему направляемся к нашему файлику, жмем правой кнопкой мышки, выбираем " Переименовать " и методом печатания на клавиатуре меняем расширение с txt на bat (на вопрос системы стоит ли это делать отвечаем утвердительно).

В результате мы имеем следующую картину (в вашем случае файлик называется иначе, но имеет тот же формат):

Собственно, все, что нам остается – это запустить этот файл простым кликом по нему мышки.

Если Вы все сделали правильно, то перед Вами промелькнет консоль и по известному пути появится новая папочка с заданным заранее названием и файлами внутри скопированными из известной Вам папки, т.е картина получится примерно следующая:

Ну или несколько другая, в зависимости от того какие пути и названия папок Вы прописывали в команде.
Отредактировать файлик можно сменив ему расширение обратно на .txt и открыв любым текстовым редактором.

Послесловие

Как я уже сказал и Вы сами наверное осознали – использование подобного bat файл ‘а зачастую экономит кучу времени, т.е. один раз написал и периодически запускаешь одним кликом и вместо многоминутных тычков мышкой и ползания по всем папкам получаешь автоматизированный процесс копирования.

При желании можно поставить запуск этого bat -ника в определенные дни через планировщик Windows (или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup ‘ов.

Если есть какие-то вопросы или проблемы – спрашивайте. Как всегда помогу чем смогу 😉

PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела " Автоматизация администрирования ".. так что можете собой гордится 🙂

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>