Использование ksh, например.
(
for URL in http://host.com/url1 http://host.com/url2 http://host.com/url3
do
wget -O - -q "$URL"
done
) | gzip -c > mysingle.zip
Теперь все данные заархивированы в один файл, но это не совсем архив :вы не можете извлечь один из файлов, вам нужно будет добавить разделитель в цикле.
Во многих дистрибутивах это должно работать через logrotate, который вызывается из cron или системного таймера каждый день. Logrotate ищет его конфигурацию, например, в /etc/logrotate.d
. Например, в Debian вы найдете /etc/logrotate.d/rsyslog
, который ротирует/var/log/messages
(и множество других лог-файлов ), вот выдержка:
/var/log/messages
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
После ротации файлов он сообщает rsyslog закрыть старый файл журнала (, что вы и сделали, перезапустив rsyslog )запустив /usr/lib/rsyslog/rsyslog-rotate
, который отправляет SIGHUP
в rsyslogd. Демон закроет файлы, когда получит SIGHUP
без перезапуска; см. раздел «Сигналы» в rsyslogd (8).
Используйтеlogrotate
цитата из справочной страницы
logrotate reads everything about the log files it should be handling from the series of configuration files specified on the command line. Each configuration file can set global options (local definitions override global ones, and later definitions override earlier ones) and specify logfiles to rotate. A simple configuration file looks like this:
# sample logrotate configuration file
compress
/var/log/messages {
rotate 5
weekly
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
The next section of the config files defined how to handle the log file /var/log/messages. The log will go through five weekly rotations before being removed. After the log file has been rotated (but before the old version of the log has been compressed), the command /sbin/killall -HUP syslogd will be executed.