rdesktop USB-перенаправление сохранить удаление

3821
wullxz

У нас есть несколько тонких клиентов HP типа t5545. Перенаправляем USB-Media на сервер терминалов. Поскольку t5545 запускает debian, настроенный с помощью hp, мы можем трактовать его как debian.

Сначала я объясню, как настроено перенаправление usb:

  • автоматически смонтировать его в / tmp / tmpfs / media
  • / tmp / tmpfs / media перенаправляется как диск "Z" через rdesktop-параметр -r disk: sharename = путь
  • в случае удаления usb-носителя udev запустит скрипт для размонтирования -l устройства и удаления точки монтирования

Окружающая среда:

  • Тонкие клиенты запускают linux: root @ mac-addr : / tmp / tmpfs / media # uname -a
    Linux mac-addr 2.6.26-2-686 1 SMP Ср 4 ноября 20:45:37 UTC 2009 i686 GNU / Linux
  • Terminalserver работает под управлением Windows Server 2008 R2

Проблема: когда пользователи пишут на usb-носители, они пишутся мгновенно. Но на самом деле для записи файла требуется несколько секунд, даже если он имеет всего несколько килобайт. Server 2008 R2 не показывает никаких подсказок по этому поводу. Если пользователь удаляет свой usb-носитель сразу после записи на usb-носитель, файл не будет на его usb-носителе.

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

Изменить: нет идей? Решение не должно быть похоже на Windows-7, известное, кроме удаления USB-носителя. Было бы хорошо, если бы было даже уведомление, если процесс записи продолжается или готов.

Обновление:
пока нет решения! Еще есть шанс получить 150 очков репутации!

Мне нужен один из этих 2 пунктов:
- способ информировать пользователя, когда процесс записи завершен, или ...
- скрипт / небольшое приложение без зависимостей (потому что флэш-диск почти заполнен), который позволяет удалить сохранение usb-media

Изменить :
я действительно хотел бы отдать эту награду. Поторопись ;)

0
Подождите, Rdesktop до 2008 R2? Я никогда не заставлял это работать! Он всегда отключается мгновенно ... sinni800 13 лет назад 0
Да, это работает ... в основном ... Согласно `dpkg -l | grep rdesktop` есть rdesktop 1.6.0-1.36, настроенный с помощью hp. Им пришлось применить патч для устранения некоторых ошибок перенаправления usb, таких как невозможность удаления непустых каталогов и дополнительное правило udev для автоматического размонтирования usb-носителя, когда он отключен. Но кроме этого, это работает. wullxz 13 лет назад 0
Да, в прошлый раз, когда я попробовал это, это не сработало, я должен попробовать еще раз ... sinni800 13 лет назад 0

4 ответа на вопрос

1
bakytn

Проблема не в RDESKTOP и не в Windows. Это связано с тем, как Linux (и другие ОС) работают со съемными носителями. Предполагается, что они будут удалены безопасно, а затем отключены, чтобы убедиться, что только что записанные данные были синхронизированы.

Что вы можете сделать, так это сообщить вашей системе, чтобы они чаще выполняли эти «синхронизации».

Вы можете написать демон C, который сделает это за вас. Или вы можете покопаться в настройках модуля ядра и указать не использовать write-cache.

Я мог бы написать демон C, но я не хороший программист и даже менее программист Linux. Я понимаю вашу идею и тоже об этом думаю, но я не могу ее реализовать. Однако вы не дали мне никакого решения, кроме хороших советов - я все равно проголосую за вас. wullxz 12 лет назад 0
1
Bgs

Mount your local stuff (/tmp/tmpfs/* in your case) with sync option.

Между тем, мы больше не контролируем клиента. Тем не менее, эта подсказка в основном предотвратит потерю данных, и я принимаю этот ответ по этой причине. Однако я не могу протестировать это решение - я только прочитал man-страницу `mount`, чтобы узнать, что делает опция` sync`. wullxz 12 лет назад 0
0
yeedl

Это хитрый. Если я правильно понял, вы хотите, чтобы пользователь подождал несколько секунд, прежде чем извлекать USB-накопитель, который отображается в виде папки внутри сеанса удаленного рабочего стола. Моя единственная идея для решения этой проблемы заключается в том, чтобы использовать эту утилиту, которая увидит, что папка (точка монтирования) получила новые данные, а затем может запустить скрипт для запуска диалогового окна (я бы использовал autohotkey ), которое предупредит пользователя " Вы недавно вставили USB-устройство, подождите 20 секунд после последнего сохранения данных на USB-накопитель, прежде чем извлекать его. В противном случае ваши данные могут сохраниться неправильно. " Имейте это, контролируют Z: \, чтобы видеть, создана ли папка.

Или вы пробовали freerdp ? Это может не содержать задержку, которую вы упоминаете.

проблема в том, что мой клиент тонкий клиент. На флэш-диске осталось мало места. Я хотел бы иметь решение, которое позволяет сохранить удаление usb-носителя или которое замечает меня точно после того, как все задачи записи завершены. Я не знаю, какие файлы будут записаны на usb-media и насколько они будут большими. Это значит: может быть, что 20 секунд недостаточно, чтобы ждать ... Я хочу сэкономить на этом. wullxz 13 лет назад 0
но если люди участвуют в сеансе RDP и что-то появляется на их машине вне RDP, увидят ли они это? взгляните на эту утилиту: http://iwatch.sourceforge.net/index.html yeedl 13 лет назад 0
хорошо ... я должен посмотреть на это. К сожалению, у меня сегодня много задач, и я не могу проверить их в течение следующих 24 часов. Можете ли вы сказать мне, сколько дискового пространства нужно этому пакету? Есть ли зависимости? Если ничего не работает, мне придется написать небольшой скрипт для сервера и тонкого клиента, чтобы позволить пользователю размонтировать USB-флешку (это не должно быть слишком сложно). wullxz 13 лет назад 0
к сожалению, у iwatch слишком много зависимостей, которые еще не установлены на thinclient. Это не поместится на флэш-диске. У вас есть другие идеи? wullxz 13 лет назад 0
0
dvd

Вы можете использовать, fuserчтобы увидеть, какой pid использует точку монтирования.

/media/sdc1работает? fuser -vm /media/sdc1покажет пользователя, pid, доступ и команду. Вам понадобится какой-нибудь скрипт, чтобы сделать трюк. Проверьте, активирован ли F- доступ (открыть файл для записи).

Например, проверка, если кто-то использует sr0:

$ fuser -m / dev / sr0 -v

КОМАНДА ДОСТУПА ДЛЯ PID ПОЛЬЗОВАТЕЛЯ / dev / sr0:
dvd 17298 F .... xfburn