У меня Ubuntu Server 16.04 установлен с Samba на другом компьютере в моей сети. ОС Ubuntu находится на небольшом SSD, и у меня есть 2 дополнительных жестких диска, смонтированных в / media / drive1 и /media/drive2.
Теперь, насколько мне известно, у меня есть 2 варианта сделать эти диски доступными с моего ПК с Windows:
В настоящее время моей целью является копирование данных с диска 1 на диск 2 (локально на сервере), не выходя из Проводника на моем рабочем столе Windows.
Если я сделаю 2 общих ресурса, по одному на каждый диск, с локальной скоростью копирования просто невозможно работать. Он колеблется в пределах 20-50 КБ / с с редкими скачками до 1-1,5 МБ / с, и каждые 20 или около того секунд он просто умирает и останавливается на 0.
Из того, что я прочитал, теперь я предполагаю, что это потому что файлы сначала будут скопированы на мой рабочий стол Windows и повторно загружены на сервер. Я думаю, что 2 акции больше не интерпретируются как «локальные». Почему это полностью глохнет, хотя я не понимаю.
Если я сделаю 1 общий ресурс со всем каталогом / media /, у меня возникнут проблемы с «недостаточным пространством на диске» при попытке скопировать файлы с диска 1 на диск 2, даже если места достаточно. Я могу копировать 80 ГБ за раз, но не более 80 ГБ за один раз. Скорость копирования при этом копировании нормальная, около 70-80 МБ / с с некоторыми скачками до 90 МБ / с +.
Теперь я обнаружил, что это происходит потому, что Samba проверяет доступное пространство на диске каталога, на который вы указываете, в данном случае / media, и эта папка находится на небольшом SSD. SSD имеет только 80 ГБ свободного места, поэтому математика проверяется.
1110 Итак, я думаю, вопрос в том, можно ли как-то решить эту проблему, чтобы у меня было лучшее из двух миров? Я хотел бы иметь возможность копировать файлы на сервере с одного диска на другой без этих ограничений, не выходя из моего проводника Windows на рабочем столе.
Приложение. Это шаблон, который я использую для создания своих общих ресурсов в smb.conf. Аутентификация и доступ, и все такое, без проблем.
[Drive1]
comment = Drive1
path = /media/drive1
browsable = yes
guest ok = no
valid users = @samba
read only = no
create mask = 0755
Это будет противное обходное решение: создайте файл/usr/local/bin/dfree_Drive.sh
#!/bin/bash
df | egrep '/media/drive[0-9]+$' | awk '{total+=$2; avail+=$4; print $0} END{print total, avail}'
и сделайте это исполняемым файлом. Затем в разделе доли Вашей конфигурации самбы добавьте:
dfree command = /usr/local/bin/dfree_Drive.sh
Это решение противно, потому что оно лжет клиенту о способности совместно используемого тома. Но насколько я знаю, что нет никакого способа сделать самбу, знающую о способности определенной папки (в отличие от объема).