старше 7 дней, но при этом не трогать N кол-во файлов? Ситуация, делаем бакап по ночам, при этом удаляем файлы старше 7 дней, но в случае, если бакап ломается, то автоудаление продолжается и через 7 дней ни одного бакапа не останется.
В контексте ансибла как звучит проблема?
Можно тот же deploy_helper использовать как вариант. Ну, или поменять логику выборки. Удалять не то, что старше семи дней, а все, кроме семи последних, например.
вот эту команду, но не хотелось бы использовать shell ls -tr /path/to/backups/*.zip | head -n -3 | xargs --no-run-if-empty rm
Выше был пример кода. - name: Find all backup files ansible.builtin.find: paths: '{{ backup_path }}' patterns: work-*.tar.gz use_regex: true register: backup_files - name: Sort backup files by age set_fact: sorted_backup_files: >- {{ backup_files.files | sort(attribute='ctime', reverse=true) }} - name: Remove the oldest backup if there are more than 3 ansible.builtin.file: path: '{{ backup_item.path }}' state: absent loop: '{{ sorted_backup_files[3:] }}' loop_control: loop_var: backup_item when: sorted_backup_files | length > 3
Тимур, а что это за конструкция? Это что то из текстовых фильтров? '{{ sorted_backup_files[3:] }}' У меня переменная sorted_backup_files содержит значения, а вот эта конструкция не работает. Попробовал вывести ее и посмотреть, что она выводит - ничего. man что?
man slice string в питоне )))
должно быть больше 3 элементов
Обсуждают сегодня