помешайте rsync удалять незаконченные исходные файлы

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

170
задан L. F. 9 July 2019 в 06:57
поделиться

4 ответа

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

, Если это - Linux, для файла возможно быть открытым процессом A и обработать B, может расцепить файл. Нет никакой ошибки, но конечно A тратит впустую свое время. Поэтому то, что rsync удаляет исходный файл, не является проблемой.

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

Как насчет этого: Смонтируйтесь mass как удаленная файловая система (NFS работал бы) в speed. Тогда просто веб-проверка файлы непосредственно.

10
ответ дан Jason Cohen 23 November 2019 в 20:48
поделиться

Rsync может исключить файлы, соответствующие определенным скороговоркам. Даже если Вы не можете изменить его, чтобы заставить его загрузить файлы на временный каталог, возможно, это имеет соглашение именования файлов по-другому во время загрузки (например: foo.downloading при загрузке для файла, названного foo) и можно использовать это свойство для исключения файлов, которые все еще загружаются с того, чтобы быть скопированным.

3
ответ дан Grey Panther 23 November 2019 в 20:48
поделиться

Сколько контроля Вы имеете над процессом загрузки? Если Вы самокрутка, Вы можете иметь файл, загружаемый движение на временный каталог, или иметь временное имя, пока это не закончило загружать, и затем mv это к корректному имени, когда это сделано. Если Вы используете внешнее программное обеспечение, то Вы не имеете столько же контроля, но Вы все еще могли бы быть в состоянии сделать временную вещь каталога.

9
ответ дан Paul Tomblin 23 November 2019 в 20:48
поделиться

Если Вы управляете процессом проверки, или он имеет предсказуемый вывод, вышеупомянутые решения (хранящий в tempfile, пока не закончено, то mv'ing к месту завершенных загрузок, или игнорирующий файлы с '.downloading' вид имени) могли бы работать. Если все это находится вне Вашего контроля, можно удостовериться, что файл не открыт никаким процессом путем выполнения 'lsof $filename' и проверки, существует ли результат. Очевидно, если ни у кого нет открытого файла, безопасно переместить его.

3
ответ дан pjz 23 November 2019 в 20:48
поделиться
Другие вопросы по тегам:

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