Здрасвуйте. Есть скрипт:
cd /var/log/squid;
squid -k rotate;
tar -czf `date --iso-8601`.tar.gz *.0;
rm -rf *.0;
Нужно дождаться окончания "ротации" логов, а только потом архивировать. Ротация запускается в фоне. Как можно осущесвить задержку?
Простенький скрипт
Модератор: Модераторы разделов
-
Electron
- Сообщения: 201
- ОС: Можно Windows написать? :-)
Простенький скрипт
Gentoo Linux 2006.0 from Stage3-Pentium4 on Intel Celeron 2.1 Ghz, 512M RAM, NV GeForce 5200FX
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Простенький скрипт
А при чем тут программирование? Разве squid -N - это не то, что нужно?
ArchLinux / IceWM
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Простенький скрипт
В bash есть wait: man wait
-
sergius
- Сообщения: 782
Re: Простенький скрипт
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Простенький скрипт
Все это ерунда. И мой совет глупый.
squid -k rotate просто посылает сигнал серверу. А тот в фоне уже все делает.
Видимо, придется делать sleep на несколько минут и потом уже архивировать.
squid -k rotate просто посылает сигнал серверу. А тот в фоне уже все делает.
Видимо, придется делать sleep на несколько минут и потом уже архивировать.
ArchLinux / IceWM
-
Nab
- Сообщения: 257
Re: Простенький скрипт
Угу, и еще для надежности проверять или время создания access.log.0 или размер
-
Electron
- Сообщения: 201
- ОС: Можно Windows написать? :-)
Re: Простенький скрипт
Спасибо. Завтра посмотрим
Спасибо. Завтра посмотрим.
Спасибо. Завтра посмотрим.
Gentoo Linux 2006.0 from Stage3-Pentium4 on Intel Celeron 2.1 Ghz, 512M RAM, NV GeForce 5200FX
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Простенький скрипт
Да нет. Насколько я понимаю (негде сейчас проверить, а на боевом сервере экспериментировать как-то не тянет) действия squid после данного сигнала заключаются всего лишь в:
1. Прекратить писать в лог
2. Переименовать лог-файл в архивный
3. Создать новый лог-файл
4. Продолжить писать в лог
То есть, операция (2) атомарная и занимает ну очень мало времени. Ну даже если и не атомарная в программерском смысле, все равно "быстрая".
Кстати, Electron, для твоей задачи уже придумали logrotate.
ArchLinux / IceWM
-
Electron
- Сообщения: 201
- ОС: Можно Windows написать? :-)
Re: Простенький скрипт
(madskull @ Mar 29 2006, в 21:23) писал(а):Кстати, Electron, для твоей задачи уже придумали logrotate.
Да. Как раз почитал про неё. Но не всё понятно. Что значит "ротация логов 5 раз"?
P.S. Подкиньте, пожалуйста, кто-нибудь конфиг logrotate.conf и парочку файлов из logrotate.d.
Gentoo Linux 2006.0 from Stage3-Pentium4 on Intel Celeron 2.1 Ghz, 512M RAM, NV GeForce 5200FX
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Простенький скрипт
"ротация логов 5 раз" - хранится пять предыдущих архивов.
По идее, в поставке logrotate должны идти примеры скриптов.
По идее, в поставке logrotate должны идти примеры скриптов.
Код: Выделить всё
[mail ms]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
# system-specific logs may be configured here
[mail ms]#Код: Выделить всё
[mail ms]# cat /etc/logrotate.d/squid
#
# Logrotate fragment for squid.
#
/var/log/squid/*.log {
weekly
compress
delaycompress
rotate 4
missingok
nocreate
sharedscripts
prerotate
# test ! -x /usr/sbin/sarg-maint || /usr/sbin/sarg-maint
endscript
postrotate
test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
endscript
}
[mail ms]#ArchLinux / IceWM