Копирование файлов по неустойчивому сетевому соединению

Если вы используете virtualenvwrapper, вы можете просто найти его с помощью which virtualenvwrapper.sh, затем откройте его с помощью vim или любого другого редактора, а затем измените следующее

# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi

Измените строку VIRTUALENVWRAPPER_PYTHON="$(command \which python)" - VIRTUALENVWRAPPER_PYTHON="$(command \which python3)".

13
задан Fred Foo 8 December 2010 в 20:16
поделиться

8 ответов

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

  • Вы хотите прерываемые копии (с такими небольшими размерами файла, который не кажется, что это было бы настолько большим из соглашения)? Если так, посмотрите CopyFileEx с COPYFILERESTARTABLE
  • , Вы хотите копии поддающиеся проверке? Кажется, что у Вас уже есть это путем проверки хешей.
  • Вы хотите лучшую производительность? Это будет жестким, поскольку это кажется, что Вы ничего не можете выполнить на сервере. Иначе TransmitFile может помочь.
  • Вы просто хотите огонь и забываете операцию? Я предполагаю выход из оболочки к robocopy, или TeraCopy, или что-то работало бы - но это кажется небольшим hacky мне.
  • Вы хотите знать, когда сеть возвращается? IsNetworkAlive имеет Ваш ответ.

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

sourceFile = Compress("*.*");
destFile = "X:\files.zip";

int copyFlags = COPYFILEFAILIFEXISTS | COPYFILERESTARTABLE;
while (CopyFileEx(sourceFile, destFile, null, null, false, copyFlags) == 0) {
   do {
     // optionally, increment a failed counter to break out at some point
     Sleep(1000);
   while (!IsNetworkAlive(NETWORKALIVELAN));
}

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

5
ответ дан 1 December 2019 в 22:08
поделиться

Гм, кажется, что rsync делает это и не нуждается в сервере/демоне/установке, я думал, что это делает - просто $ rsync src dst.

0
ответ дан 1 December 2019 в 22:08
поделиться

SMS, если это - доступные работы.

-1
ответ дан 1 December 2019 в 22:08
поделиться

Вы могли использовать (свободную) Microsoft SyncToy.

http://www.microsoft.com/Downloads/details.aspx?familyid=C26EFA36-98E0-4EE9-A7C5-98D0592D8C52&displaylang=en

0
ответ дан 1 December 2019 в 22:08
поделиться

Попытайтесь использовать БИТЫ (Фон Интеллектуальный Сервис Передачи). Это - инфраструктура, которую Windows Update использует, доступен через API Win32 и создается конкретно для обращения к этому.

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

http://www.codeproject.com/KB/IP/bitsman.aspx

5
ответ дан 1 December 2019 в 22:08
поделиться

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

, Если Вы хотите полностью выложиться, Вы могли бы сделать тот же процесс, но для мелких деталей файла. Тогда, когда Вы имеете все части, присоединяетесь к ним на принимающем конце.

0
ответ дан 1 December 2019 в 22:08
поделиться

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

13
ответ дан 1 December 2019 в 22:08
поделиться

Я соглашаюсь с Robocopy как решение... thats, почему утилиту называют "Устойчивая Копия Файла",

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

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

Это также делает прерываемые передачи, и можно ли даже отрегулировать передачи с разрывом между пакетами assuing, Вы не хотите использовать всю пропускную способность, поскольку другие программы используют то же соединение (/IPG переключатель)?.

1
ответ дан 1 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: