LINUX.ORG.RU
ФорумAdmin

CronTab не выполняет скрипт

 


0

1

Добрый день! Есть файл скрипта с правами: "-rwxr-xr-x 1 root root" Описание файла:

#! /bin/bash

log='/data/..'

echo $(date +"%Y.%m.%d %H-%M-%S") Начало >> $log

sync
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches

echo $(date +"%Y.%m.%d %H-%M-%S") Окончание >> $log

Crontab:

15 7 * * * root /data/..sh

Скрипт запускается, в логах я вижу время запуска, но вот кэш в ОЗУ он не чистит. Если я запущу скрипт через mc, то скрипт очищает ОЗУ и так же пишет в лог информацию. Почему КЭШ не чистится через cron?

Ответ на: комментарий от Radjah

На нем БД FireBird, он за 1 день держит в КЭШе 30 GB, поэтому каждое утро чищу его. Из-за пробела может быть проблема? Есть примерно такой же срипт с пробелом, но он работает :(

SLameN ()

Попробуй sync заменить на /bin/sync.

i-rinat ★★★★★ ()
Ответ на: комментарий от hanharr

Наверное будет не:
15 7 * * * root /data/..sh
а
15 7 * * * bash /data/..sh

В этом столбце в crontab указывается имя пользователя, от которого нужно запускать программу.

i-rinat ★★★★★ ()
Ответ на: комментарий от SLameN

На нем БД FireBird, он за 1 день держит в КЭШе 30 GB, поэтому каждое утро чищу его.

И все-таки. Оно вам чем-то мешает? Ну сожрало 30Гб, видимо памяти хватает, так и будет эти 30 держать или сколько-там еще отдадут. Всяко лучше из кэша данные клиенту отдавать, чем заставлять с диска читать.

По теме. Как уже упоминали выше, в первую очередь полные пути. Потом синтаксис crontab, мы не знаем в какой именно вы прописывали, хотя говорите что в лог пишется. Надеюсь в ваш лог? Т.е. видите ...«Начало» .... «Окончание» ?

Для дэбага добавьте перенаправление (stdout и stderr) в лог каждой команды, может станет понятнее.

Вроде не в вашу тему. Но вдруг. Совсем недавно тут разбирали проблему крона и «выключенного рута». ТС из той темы помогло это https://ubuntuforums.org/showthread.php?t=1140565

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.