Я не думаю, что можно сделать это через завихрение. Необходимо было бы работать curl -l
для списка содержания каталога считайте соответствия, вид по дате и проблема удаленный rm
команды с curl -Q
.
Если Ваша система поддерживает FUSE (большинство делает), я рекомендую смонтировать удаленный каталог как файловую систему. Этот подход позволяет Вам разделить свою проблему на две отдельных задачи: получите доступ к удаленным файлам путем монтирования их и работы над ними, как Вы были бы на локальных файлах. Можно использовать curlftpfs для удаленного монтирования.
mkdir ftp.example.com
curlftpfs ftp.example.com ftp.example.com
cp -p /path/to/local/file ftp.example.com/remote/dir/
Теперь, для нахождения самых старых файлов в каталоге самый легкий путь состоит в том, чтобы использовать zsh и его спецификаторы шарика. Работа в каталоге ftp.example.com/remote/dir/
:
files=(*(mm)) # Om = sort by date, youngest first
if ((${#files} > 5)); then
rm $files[-1] # remove the last file
# rm $files[6,-1] # remove all but the 5 youngest files
fi
Обычное решение для этой проблемы состоит в том, чтобы использовать, поворачивают файлы журнала так, чтобы текущий файл журнала только содержал текущие записи, вместо того, чтобы удалить устаревшие записи из файла.
Это все обрабатывается logrotate
программа. Следующая конфигурация должна сделать приблизительно, что Вы хотите. Это сохранит прошлые 6 месяцев записей в журнале от /var/squid/logs/access.log
, вращение файлов еженедельно.
/var/squid/logs/access.log {
weekly
rotate 26
missingok
nocreate
sharedscripts
postrotate
test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
endscript
}
Если Вы действительно заботитесь о данных в Ваших файлах журнала, Вы не должны изменять их.
Решение с newsyslog
:
# logfile [owner:group] mode count when flags
/var/squid/logs/access.log root 644 26 $W0D0 JN
Файл журнала будет повернут 26 раз, прежде чем он будет удален. $W0D0
указывает, что я буду поворачиваться каждое воскресенье в 0:00
час.
Флаг J
указывает, что newsyslog должен сжать повернутое использование файла bzip2
.
Флаг N
указывает, что нет никакого процесса, который должен быть сообщен.
newsyslog
? – TaXXoR 16.09.2013, 15:12