Невозможно выполнить ожидаемый сценарий через cron даже с разрешениями, установленными на 777

Я создал ожидаемый скрипт, который не будет запускаться при вызове cron. Я включил полный путь в cron при его вызове следующим образом.

  *   *   *   *   *     /usr/local/sbin/checkForRemoteTasks >/tmp/checkForRemoteTasks.output

Это вызывает скрипт checkForRemoteTasks и экспортирует результаты в /tmp/checkForRemoteTasks.output. Содержимое скрипта выглядит следующим образом:

#!/usr/bin/expect -f
set timeout -1
set env(TERM) vt100

if [file exists "/usr/local/sbin/remoteTasks/restartMySQL"] {
    ## STOP APACHE FIRST
    spawn apache2ctl stop
    expect "#"
    spawn service mysql restart
    expect "#"
    spawn rm /usr/local/sbin/remoteTasks/restartMySQL
    expect "#"
    spawn apache2ctl start
    expect "#"
}
if [file exists "/usr/local/sbin/remoteTasks/restartApache"] {
    spawn apache2ctl graceful
    expect "#"
    spawn rm /usr/local/sbin/remoteTasks/restartApache
    expect "#"
}

У меня есть скрипт на моем тестовом сервере, который загружает файл в файл / usr / local / sbin / remoteTasks / restartMySQL. Файл содержит один символ. Сценарий ожидаемого запуска cron (на моем рабочем сервере) должен проверить файл restartMySQL, и если он найдет файл, он должен запустить соответствующие команды для остановки apache, перезапустить MySQL, а затем перезапустить apache. Он работает, когда я запускаю его вручную, а не когда запускаю через cron. Любая помощь будет оценена.

Вот вывод /tmp/checkForRemoteTasks.output:

spawn apache2ctl stop
0
задан 16 August 2014 в 04:06

1 ответ

Действительно ли какая-либо из тех команд является на самом деле интерактивной? Если не, просто используйте exec

if {[file exists "/usr/local/sbin/remoteTasks/restartMySQL"]} {
    ## STOP APACHE FIRST
    exec apache2ctl stop
    exec service mysql restart
    file delete /usr/local/sbin/remoteTasks/restartMySQL
    exec apache2ctl start
}
if {[file exists "/usr/local/sbin/remoteTasks/restartApache"]} {
    exec apache2ctl graceful
    file delete /usr/local/sbin/remoteTasks/restartApache
}

, Но если Вы делаете это, Вы, сила была хорошо палкой с оболочкой:

#!/bin/sh
if [[ -f /usr/local/sbin/remoteTasks/restartMySQL ]]; then
    ## STOP APACHE FIRST
    apache2ctl stop
    service mysql restart
    rm /usr/local/sbin/remoteTasks/restartMySQL
    apache2ctl start
fi
if [[ -f /usr/local/sbin/remoteTasks/restartApache ]]; then
    apache2ctl graceful
    rm /usr/local/sbin/remoteTasks/restartApache
fi
0
ответ дан 16 August 2014 в 04:06
  • 1
    таким образом, я изменился .app-view-control:last-child:rtl на border-radius: 18px 18px 18px 18px, но это didn' t работа. можно ли указать, на который должно быть изменено значение? – user2438113 28 December 2015 в 18:46

Другие вопросы по тегам:

Похожие вопросы: