Контекст
В настоящее время я отправляю данные на SFTP-сервер, который другие процессы и системы используют для дальнейших действий. Все файлы имеют общую корневую папку, но они подразделяются на подпапки в соответствии с определенными категориями. Эта структура папок не должна изменяться и не может быть изменена. По истечении определенного периода времени (в настоящее время 7 дней) мне нужно автоматически удалить эти файлы.
К сожалению, сервер имеет строгие права доступа, и я могу получить доступ только к определенному каталогу через SFTP; SSH и т. д. запрещены. Проблема в таком автоматизированном процессе заключается в следующих ограничениях:
- Только SFTP-протокол
- Никакие изменения в логике папок не допускаются; старые и новые файлы должны находиться в одних и тех же каталогах
- Команду SFTP необходимо выполнить из задания CRON. Таким образом, SFTP-команды должны обрабатываться как однострочные.
- Ничего нельзя установить/изменить на SFTP-сервере
Пока я знаю, что могу удалять файлы в одну строку следующим образом:
echo "rm $_file_name" | sftp $username@$sftp_server
Однако проблема, с которой я больше всего борюсь, - это чтение файлов на SFTP-сервере в одну строку и фильтрация этого вывода по критерию даты.
Вопрос
Как я могу выполнить задание CRON, удаляющее файлы только через SFTP в каталоге, если они старше недели?
Примечание. Мне известны такие вопросы, как здесь и здесь; во всяком случае, они не разделяют ограничений, которые есть у меня.