Простенький скрипт

Модератор: Модераторы разделов

Electron
Сообщения: 201
ОС: Можно Windows написать? :-)

Простенький скрипт

Сообщение Electron »

Здрасвуйте. Есть скрипт:

cd /var/log/squid;
squid -k rotate;
tar -czf `date --iso-8601`.tar.gz *.0;
rm -rf *.0;

Нужно дождаться окончания "ротации" логов, а только потом архивировать. Ротация запускается в фоне. Как можно осущесвить задержку?
Gentoo Linux 2006.0 from Stage3-Pentium4 on Intel Celeron 2.1 Ghz, 512M RAM, NV GeForce 5200FX
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Простенький скрипт

Сообщение madskull »

Electron писал(а):
28.03.2006 09:51
Здрасвуйте. Есть скрипт:

cd /var/log/squid;
squid -k rotate;
tar -czf `date --iso-8601`.tar.gz *.0;
rm -rf *.0;

Нужно дождаться окончания "ротации" логов, а только потом архивировать. Ротация запускается в фоне. Как можно осущесвить задержку?

А при чем тут программирование? Разве squid -N - это не то, что нужно?
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Простенький скрипт

Сообщение serzh-z »

В bash есть wait: man wait
Спасибо сказали:
Аватара пользователя
sergius
Сообщения: 782

Re: Простенький скрипт

Сообщение sergius »

Electron писал(а):
28.03.2006 09:51
Здрасвуйте. Есть скрипт:

cd /var/log/squid;
squid -k rotate;
tar -czf `date --iso-8601`.tar.gz *.0;
rm -rf *.0;

Нужно дождаться окончания "ротации" логов, а только потом архивировать. Ротация запускается в фоне. Как можно осущесвить задержку?


Может так?

Код: Выделить всё

squid -k rotate && tar -czf `date --iso-8601`.tar.gz *.0 && rm -rf *.0;
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Простенький скрипт

Сообщение madskull »

Все это ерунда. И мой совет глупый.
squid -k rotate просто посылает сигнал серверу. А тот в фоне уже все делает.

Видимо, придется делать sleep на несколько минут и потом уже архивировать.
ArchLinux / IceWM
Спасибо сказали:
Nab
Сообщения: 257

Re: Простенький скрипт

Сообщение Nab »

Угу, и еще для надежности проверять или время создания access.log.0 или размер
Чтобы правильно задать вопрос, нужно знать больше половины ответа...
FREESCO in Ukraine
Спасибо сказали:
Electron
Сообщения: 201
ОС: Можно Windows написать? :-)

Re: Простенький скрипт

Сообщение Electron »

Спасибо. Завтра посмотрим

Спасибо. Завтра посмотрим.
Gentoo Linux 2006.0 from Stage3-Pentium4 on Intel Celeron 2.1 Ghz, 512M RAM, NV GeForce 5200FX
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Простенький скрипт

Сообщение madskull »

Nab писал(а):
28.03.2006 17:08
Угу, и еще для надежности проверять или время создания access.log.0 или размер

Да нет. Насколько я понимаю (негде сейчас проверить, а на боевом сервере экспериментировать как-то не тянет) действия squid после данного сигнала заключаются всего лишь в:
1. Прекратить писать в лог
2. Переименовать лог-файл в архивный
3. Создать новый лог-файл
4. Продолжить писать в лог

То есть, операция (2) атомарная и занимает ну очень мало времени. Ну даже если и не атомарная в программерском смысле, все равно "быстрая".


Кстати, Electron, для твоей задачи уже придумали logrotate.
ArchLinux / IceWM
Спасибо сказали:
Electron
Сообщения: 201
ОС: Можно Windows написать? :-)

Re: Простенький скрипт

Сообщение Electron »

(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: Простенький скрипт

Сообщение madskull »

"ротация логов 5 раз" - хранится пять предыдущих архивов.

По идее, в поставке 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
Спасибо сказали: