Итак, я могу сделать это: sftp user @ server
Это файлы https://gist.github.com/438a6b82aff3064a19c9
мне нужно удалить файлы старше 60 дней.
Есть ли способ автоматизировать это?
Команда find не работает. удаление по шаблону не работает.
Rsync поддерживается. Как это делается с помощью rsync?
В качестве альтернативы лучшим вариантам, указанным выше, вы можете создать сценарий (с использованием lftp или чего-то еще) для удаления всех файлов с помощью подстановочного знака и замены локальной даты.
Это очень некрасиво, но работает:
для i в 60 999; do lftp sftp: // user @ host -c "rm / path / to / website_production _ $ (date -d" $ i days ago "+% m-% d-% Y) *" done
Возможно, вы захотите настроить его так, чтобы вам не приходилось вводить пароль.
Смонтируйте папку sftp в своей системе, если вы используете OS X, вы можете использовать Transmit для этого или Linux (в данном случае Ubuntu), вы можете использовать это руководство http://blog.damontimm.com/how-to-mount-a-sftp-folder-ssh-ftp-on-ubuntu-linux-using-sshfs-fuse/ .
Все они используют FuSE, поэтому я уверен, что он также работает в Windows, если вы посмотрите его. Но как только вы его смонтируете, вы сможете использовать любые команды, которые вы можете использовать в своей системе.
Rsync защищает дату создания. Таким образом, вы можете синхронизировать все файлы на свой компьютер. Тогда беги find
чтобы выбрать файлы старше 60 дней и удалить их. И загрузите их обратно через rsync. Или просто удалите их в месте назначения.
РЕДАКТИРОВАТЬ
Результат проверки rsync в локальных каталогах:
rsync -av input/ tmp/
find tmp/* -mtime +10 -exec rm {} \;
rsync --delete -av tmp/ input
После этого каталог ./input/ удаляется из файлов, измененных более 10 дней назад. Это должно быть применимо к удаленному каталогу через SFTP.