Как скопировать файлы с windows на freebsd

Обновлено: 05.07.2024

Если на Вашем сервере с операционной системой FreeBSD имеется большое количество свободного дискового пространства, то одним из эффективных способов его применения может стать организация резервного копирования данных с других компьютеров. Если они работают под управлением операционных систем семейства Linux / Unix, не должно возникнуть никаких проблем, если под управлением Windows, то задача немного усложнится. Данная статья описывает один из способов ее решения.

Постановка задачи и исходные данные

Необходимо организовать резервное копирование содержимого общих папок \NTSERVER1SHARE1 и \NTSERVER2SHARE2 , находящихся на серверах с Windows, в папки /backup/share1 и /backup/share2 локальной файловой системы сервера с FreeBSD по заданному расписанию. Для выполнения резервного копирования (синхронизации) файлов и папок следует использовать утилиту cpbk, установленную из обновленной коллекции портов.

Добавление поддержки SMBFS

Добавление поддержки SMBFS потребуется только при наличии серверов с FreeBSD версии ниже 5.0 (начиная с версии 5.0, операционная система содержит модуль ядра, обеспечивающий нужную функциональность). Для включения поддержки SMBFS в старых версиях операционной системы придется добавить в файл конфигурации ядра опции NETSMB , NETSMBCRYPTO , LIBMCHAIN , LIBICONV , SMBFS , пересобрать ядро и перезагрузить систему.

Файл конфигурации утилит SMBFS

По умолчанию утилиты SMBFS используют глобальный файл конфигурации /etc/nsmb.conf и пользовательские файлы конфигурации

/.nsmbrc . Опции, заданные в глобальном файле конфигурации, переопределяют опции, заданные в файлах конфигурации пользователей. Лично я использую файл конфигурации .nsmbrc , находящийся в домашней папке суперпользователя root . В рассматриваемом случае этот файл должен обеспечивать корректную перекодировку русских букв в именах файлов и папок, возможность обращения к серверам с Windows по именам NetBIOS и возможность подключения к выбранным общим папкам без ввода пароля. С учетом сказанного файл

/.nsmbrc должен иметь следующее содержимое:

Секция [default] является общей для всех серверов с Windows. В рассматриваемом случае она содержит параметры перекодировки имен файлов charsets , IP-адрес сервера WINS nbns и имя домена или рабочей группы workgroup . Секции вида [<Имя сервера>:<Имя пользователя>] задают параметры подключения конкретных пользователей Windows к конкретным серверами с Windows. В рассматриваемом случае они содержат пароли password . По умолчанию пароли хранятся в открытом виде. Для частичного избавления от данной неприятности предназначена команда smbutil crypt <пароль> , результатом выполнения которой является закодированный пароль. В связи с тем, что кодирование не является шифрованием и спасает только от подглядывания, не забудьте выполнить команду chmod 600

/.nsmbrc , которая запретит доступ к файлу

/.nsmbrc всем, кроме владельца. Для тестирования созданного файла конфигурации можно запросить списки общих папок серверов с Windows командами:

а также создать точки монтирования и попытаться смонтировать выбранные общие папки серверов с Windows командами:

Если Вы были внимательны, команды smbutil. и mount. отработают без ошибок и ни разу не попросят Вас ввести пароль.

Обновление таблицы файловых систем

Для повышения удобства работы необходимо добавить общие папки серверов с Windows в таблицу файловых систем /etc/fstab :

Теперь для монтирования общих папок \NTSERVER1SHARE1 и \NTSERVER2SHARE2 можно будет использовать команды:

Синхронизация данных с помощью cpbk

Установку утилиты cpbk следует выполнить из портов:

Ключи -nr утилиты cpbk обеспечивают удаление файлов и папок, которые отсутствуют в папке-источнике, и рекурсивную обработку вложенных папок (в результате в папке-приемнике создается точная копия содержимого папки-источника), а благодаря наличию ключа -o rdonly команды mount , общие папки серверов с Windows монтируются только для чтения. Для того, что созданный скрипт ежесуточно запускался в полночь, следует войти в систему под именем суперпользователя root , выполнить команду crontab -e и добавить в открывшуюся crontab строку:

Заключение

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

Добрый день. Столкнулся с проблемой: перестала работать почта на exim, разбирался и обнаружил что не работает антивирус clamav. Оказалось что нужно установить новую версию антивируса. Администратор уволился, а я в этом не силен. Я скачал новую версию антивируса clamav - clamav-0.96.tar.gz. Но я не знаю как перенести ее с виндовса на сервер FreeBSD. Также, я думаю что надо и старую версию антивируса удалить. Если кто может помочь - пишите подробней. FreeBSD 6.2

Заранее большое спасибо.

>Добрый день. Столкнулся с проблемой: перестала работать почта на exim, разбирался и
>обнаружил что не работает антивирус clamav. Оказалось что нужно установить новую
>версию антивируса. Администратор уволился, а я в этом не силен. Я
>скачал новую версию антивируса clamav - clamav-0.96.tar.gz. Но я не знаю
>как перенести ее с виндовса на сервер FreeBSD. Также, я думаю
>что надо и старую версию антивируса удалить. Если кто может помочь
>- пишите подробней. FreeBSD 6.2
>
>Заранее большое спасибо.

Зря вы это затеяли. Наймите нового сисадмина. Хотябы приходящего.

>Зря вы это затеяли. Наймите нового сисадмина. Хотябы приходящего.

Так или иначе, это сделать придется мне. Если можете, опишите хотябы как перенести файл с windows на FreeBSD. На FreeBSD нет графической оболочки, но через него идет интернет. Может можно как-нибудь скачать антивирус с инета?

>>Зря вы это затеяли. Наймите нового сисадмина. Хотябы приходящего.
>
>Так или иначе, это сделать придется мне.

Сочуствую. Увольняйся.


>Если можете, опишите хотябы как
>перенести файл с windows на FreeBSD. На FreeBSD нет графической оболочки,
>но через него идет интернет. Может можно как-нибудь скачать антивирус с
>инета?

Да вы основ не знаете. Что вам обьяснять? Как операцию на печени делать кухонным ножом?

будет мучить форум дальше :) что ему с этим файлом делать.

ps. как вариант, человека поставили перед выбором - либо делай, либо увольняйся. хотя если начальство такое "умное", проще уволиться.

pps. у нас при объеме почты до 100000 принятых писем в день вирусов в письмах бывает штуки 2-3.

ppps. кстати, существует вероятность, что wget там нет. так что лучше воспользоваться fetch - он идет в системе

> будет мучить форум дальше :) что ему с этим файлом делать.
> ps. как вариант, человека поставили перед выбором - либо делай, либо увольняйся.
> хотя если начальство такое "умное", проще уволиться.
> pps. у нас при объеме почты до 100000 принятых писем в день
> вирусов в письмах бывает штуки 2-3.
> ppps. кстати, существует вероятность, что wget там нет. так что лучше воспользоваться
> fetch - он идет в системе

. УТИЛИТКА WinSCP(копирует файл на фряху из винды), но за остальные ваши действия я не отвечаю :)


Мануал

В этом уроке мы узнаем, как установить и использовать инструмент pscp в операционной системе Windows.

Утилиту pscp можно скачать по следующей ссылке.

Существуют разные типы установки.

pscp может быть установлен в автономном режиме или с пакетом установки putty.

Я предпочитаю установочный пакет Putty, где настройка конфигурации Пути также выполняется автоматически.

Как видим, есть 32- и 64-битные версии.

Я буду использовать 64 бит, потому что моя ОС Windows 64 битная соответственно 🙂 .

Установка Pscp

Мы установим скачанный 64-битный MSI-пакет putty в обычном стиле Windows Далее-> Далее.

Помощь и Настройки

Если нам нужно перечислить все доступные опции и справочную информацию, мы можем просто ввести команду pscp в командную строку или MSDOS, как показано ниже.

Мы начнем с простого примера, где мы будем загружать или получать один файл с удаленного сервера или системы.

Как указывалось ранее, мы будем использовать протокол SSH для подключения и передачи.

Мы просто предоставим имя пользователя удаленной системы, IP-адрес или имя хоста и файл с его абсолютным путем.

Мы также предоставим имя файла, который мы хотим сохранить локально.

> pscp ismail @ 192.168.142.144 : / home / ismail / pass pass . txt

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

Затем мы предоставляем пароль для пользователя ismail.

После успешной аутентификации передача файла успешно завершена.

В предыдущем примере мы загрузили или получили один файл с удаленного сервера.

Мы также можем загружать и получать несколько файлов из удаленной системы в соответствии с их путем или расширением.

В этом примере мы загрузим все gzip-файлы с расширением gz, которые находятся в /home/ismail.

. означает, что мы будем сохранять в текущий рабочий каталог.

Загрузить или поместить файл на удаленный сервер

Мы также можем загрузить или поместить данный файл на удаленный SSH-сервер с помощью команды pscp.

Сначала мы предоставим имя файла, а затем предоставим имя пользователя удаленной системы, IP-адрес или имя хоста и путь, куда мы хотим положить файл.

Загрузить несколько файлов на удаленный сервер

Мы также можем поместить несколько файлов на удаленный сервер с помощью команды pscp.

Мы предоставим имена файлов перед удаленным сервером, информацию о пользователе.

В этом примере мы скопируем локальные файлы pass.txt, config.sys на удаленный сервер.

Если мы хотим получить удаленные каталоги и скачать локальные, нам нужно использовать рекурсивную опцию -r.

Загрузить каталоги рекурсивно на удаленный сервер

Мы также можем отправлять или загружать локальные каталоги на удаленный сервер.

Мы снова будем использовать опцию -r.

Мы поместим каталог Downloads на удаленный сервер 192.168.142.144 и в папку /home/ismail/Downloads

Подключение к серверу посредством SSH – один из основных методов управления *nix серверами. Довольно часто возникает необходимость загрузить файл на удаленный сервер, либо выгрузить, и других средств кроме SSH-подключения нет. К счастью, копирование файлов через защищенное соединение – одна из штатных функций этого протокола и реализуется с помощь отдельной команды scp в Linux-системах, либо с помощью pscp.exe, входящей в состав SSH-клиента Putty для операционной системы Windows.

Работаем на ОС семейства Linux

Используем следующий формат команд:

scp [модификатор] [источник] [место_назначения]

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

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

Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 123.123.123.123 можно командой:

scp /home/user/file.tgz root@123.123.123.123:/root

Чтобы скачать этот же файл с удаленного сервера:

scp root@123.123.123.123:/root/file.tgz /home/user

За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:

scp file1.tgz file2.tgz root@123.123.123.123:/root

Для копирования каталога потребуется задействовать модификатор команды –r. Копируем локальный каталог /home/user/dir на удаленный сервер:

scp –r /home/user/dir root@123.123.123.123:/root

В тех случаях, когда SSH-сервер работает на нестандартном порту, поможет опция –P. Если нужно подключиться через порт 10022:

scp –P 10022 /home/user/file.tgz root@123.123.123.123:/root

Чтобы узнать какие еще модификаторы поддерживает команда, можно просто запустить scp без параметров и прочитать краткую справку.

Работаем на ОС семейства Windows

При использовании операционной системы Windows и Putty в качестве клиента, формат команды остается тот же, меняется только название исполняемого файл и используется синтаксис указания путей к файлам и каталогам Windows при указании источника или места назначения. Запускаем командную строку (cmd.exe) или PowerShell, переходим в каталог, где расположен файл pscp.exe вводим команду:

pscp.exe C:Tempfile.tgz root@123.123.123.123:/root

В случае запуска из какой-либо другой папки понадобится указать полный путь к pscp.exe. Если в каком-либо из путей присутствуют пробелы, используются двойные кавычки — “Путь к файлу”:

“C:Program FilesPuttypscp.exe” C:Tempfile.tgz root@123.123.123.123:/root

Как и в случае с scp, запустив pscp.exe без параметров, можно увидеть краткую справку по синтаксису команды и перечень поддерживаемых модификаторов.

Запуск команд на удаленном сервере через SSH-подключение

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

Работаем на ОС семейства Linux

ssh [пользователь]@[сервер] ‘[команда]’

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

Например, получим информацию об установленной на удаленном сервере операционной системе:

ssh root@123.123.123.123 ‘uname -a’

Чтобы запустить несколько команд за одно подключение, можно использовать символ “;” в качестве разделителя. Проверим сетевые настройки и активные сетевые подключения на удаленном сервере:

ssh root@123.123.123.123 ‘ifconfig; netstat -anp tcp’

В случае, если потребуется запустить на удаленном сервере локальный файла сценария, потребуется в SSH-подключении вызвать командный интерпретатор в режиме исполнения сценария (например, bash с ключом -s), и на стандартный ввод передать ему файл сценария. Выглядеть эта конструкция будет так:

ssh root@123.123.123.123 ‘bash -s’ < /home/user/myscript.sh

В результате локальный файл /home/user/myscript.sh исполнится на удаленном сервере.

Запуск команды SSH без параметров позволит ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов, которые позволяют расширить функциональность команды.

Работаем на ОС семейства Windows

Если мы подключаемся к удаленному серверу с компьютера, работающего на операционной системе Windows, то нам снова потребуется обратиться к терминальному клиенту Putty, в состав которого входит исполняемый файл plink.exe. Работать с этим файлом необходимо из командной строки (cmd.exe) или из PowerShell.

Для запуска команды на удаленном сервере используется следующий синтаксис:

plink.exe [сервер] -ssh -l [пользователь] “[команда]”

Проверим конфигурацию сетевых интерфейсов:

plink.exe 123.123.123.123 -ssh -l root “ifconfig”

Как и при работе с командой SSH в Linux, plink.exe позволяет использовать “;” в качестве разделителя для запуска нескольких команд:

plink.exe 123.123.123.123 -ssh -l root “ifconfig; netstat -anp tcp”

А запуск команд из локального файла можно реализовать с помощью дополнительного ключа -m:

Читайте также: