попробуй в crontab написать
--------------
02 4 * * * root run-parts /opt/etc/cron.daily/syslog.sh
Коллеги, написал маленький скипт для архивирования логов на флешку во избежание. Уже с дебагом
-----------
[root@titanium root]$ cat /opt/etc/cron.daily/syslog.sh
#!/bin/sh
echo 1 >> /tmp/syslog.log
mkdir /opt/var/log/syslog.arch/tmp
echo 2 >> /tmp/syslog.log
cp /tmp/syslog.log* /opt/var/log/syslog.arch/tmp/
echo 3 >> /tmp/syslog.log
rm -rf /tmp/syslog.log.*
echo > /tmp/syslog.log
echo 4 >> /tmp/syslog.log
tar -cjf /opt/var/log/syslog.arch/$(date +%F).tar.bz2 /opt/var/log/syslog.arch/tmp
echo 5 >> /tmp/syslog.log
rm -rf /opt/var/log/syslog.arch/tmp
[root@titanium root]$
--------------
и в crontab
--------------
02 4 * * * root run-parts /opt/etc/cron.daily
--------------
run-parts взят с http://www.macsat.com/cron.php
Результат - лог стирается, а архив не создается.
Cтавлю в crontab без run-parts - аналогично.
Запускаю то-же руками - работатет!
Где я не прав?
попробуй в crontab написать
--------------
02 4 * * * root run-parts /opt/etc/cron.daily/syslog.sh
Ну, когда я писал "Cтавлю в crontab без run-parts - аналогично." я имел в виду
02 4 * * * root /opt/etc/cron.daily/syslog.sh
А если по твоему, то не выйдет - run-parts ест на вход каталоги, а не файлы...
Есть предположение, что для cron нет в $PATH пути /opt/bin, где лежит(если конечно он установлен) полноценный tar. А tar который в busybox непринимает -j. Если нужно только syslog.log архивировать я бы рекомендовал так сделать:
Это лог заархивирует и сотрет старый. В случае неудачи старый лог не сотрется.Code:/opt/bin/tar --remove-files -cjf /opt/var/log/$(date +%F).tar.bz2 /tmp/syslog.log
да, в моем случае без run-parts, забыл стереть из цитаты
Возвращаюсь к теме.
1. полноценный tar стоит
2. использую вариант скрипта Mam(О)n (спасибо)
3. run-parts и напрямую прописал
По барабану. Идеи есть? Куда копать?