Я знаю, что FTP не поддерживает передачу и сохранение файлов с отметками даты / времени Хотите знать, есть ли у кого-нибудь идеи / сценарии (Shell / perl), которые сохранили бы метку времени переданного файла после операции put?
ncftp - это стандартное обновление до /bin/ftp. Проверьте ncftpput S -y вариант:
ncftp
/bin/ftp
ncftpput
-y
-y Попробуйте использовать «SITE UTIME» для сохранения временных меток на удаленном хосте. Не многие удаленные FTP-серверы поддерживают это, поэтому он может не работать.
Вы также можете быть уверены, зная, что ncftp прекрасно работает на многих платформах (включая Windows)
Можете ли вы попытаться перенести ваши файлы в tar-файл? После извлечения из .tar метки времени будут восстановлены.
Один из вариантов - rcp -p. Я уверен, что есть какой-то эквивалент для более безопасного scp.
rcp -p
scp
Как отмечает Autocracy, если вы можете, просто tar / zip / в противном случае заархивируйте файл перед передачей и верните обратно. К сожалению, это не всегда работает - скажем, если у вас нет контроля / доступа к исходному серверу файла.
В качестве альтернативы, после «get» -тирования файла через FTP, измените временную метку на правильную, используя Perl utime() или команду Unix touch.
utime()
touch
Предупреждение: если вы помещаете файл на удаленный сервер, вам необходимо подключиться (ssh / telnet / rsh) для запуска сенсорной команды. Вроде громоздко и не то, что я бы порекомендовал, но правильное решение даже для "пут".