Предположим, вы хотите передать файл с одной машины на другую с помощью Samba, поскольку вы использовали более новую файловую систему cif.
Предполагая, что у вас есть все необходимые пакеты и вы выполнили все необходимые настройки в файле smb.conf, я ограничу этот ответ конфигурацией на стороне клиента.
Чтобы навсегда смонтировать общий каталог, откройте файл fstab
с путем /etc/fstab
и сделайте следующие записи:
//<IP>/<share-name-of-directory> /mount/point cifs credentials=/root/creds.txt,sec=ntlmssp,multiuser,defaults 0 0
После внесения записи в этот файл выполните команду mount -a
. Учетные данные будут указывать путь к файлу с именем пользователя и паролем пользователя, которому разрешено монтировать каталог в системе. После того, как этот пользователь войдет в систему, ему потребуется получить доступ с сервера с помощью следующей команды:
cifscreds add <ip-of-server>
После этого пользователь сможет получить доступ к смонтированному каталогу. Каталог не нужно монтировать снова и снова, так как запись была сделана в файле fstab. Файл fstab
читается во время процесса загрузки, и учетные данные предоставляются, чтобы сама система могла смонтировать каталог с сервера с этими учетными данными.
Сама команда mount монтирует каталоги только временно, поэтому каталоги размонтируются при перезагрузке системы.
Это простой bash-скрипт для вашей задачи. Просто замените строку BASE в вашем каталоге на локальном компьютере и замените строку SSH _BASE на удаленном компьютере. Надеюсь, это поможет. вложенность равна 2
#!/usr/bin/env bash
BASE="/opt/DR/output"
SSH_BASE="/data/landing"
for i in `ls ${BASE}`
do
if [ -d ${BASE}/${i} ]; then
for j in `ls ${BASE}/${i}`
do
if [ -d ${BASE}/${i}/${j} ]; then
ssh root@10.10.0.13 "mkdir -p ${SSH_BASE}/${i}/${j}"
scp ${BASE}/${i}/${j}/*.* root@10.10.0.13:${SSH_BASE}/${i}/${j}/
fi
done
fi
done