Собираем
информацию
по крупицам
Проекты / Код

BASH

Cron Emulator
18-06-2013
11:50:48

Многие системные администраторы Linux часто сталкиваются с одной и той же проблемой: при попытке запуска команды из-под демона Cron, она ведет себя не так, как при обычном вызове из консоли. Не помогает даже настройка запуска из Cron под конкретным пользователем: запуск команды от данного пользователя работает нормально в консоли, и совершенно с другим результатом в Cron. Дело осложняется тем, что из-под крона невозможно увидеть что же на самом деле происходит. 

 

Cron Emulator - это небольшой скрипт, который создает среду запуска команд аналогичную среде Cron. Прописав в его конец интересуемые команды, можно отследить их выполнение "вживую", так, как будто они выполняются в Cron.

 

 

Использование

 

Пропишите команды после строки "# Examine commands", и запустите скрипт на выполнение. Команды будут выполнены от текущего пользователя с окружением, аналогичным Cron.

 

Для тех кто забыл: чтобы в Cron запускать скрипт от нужного пользоватя, его нужно просто узазать в строке запуска стрипта в файле /etc/crontab. Вот пример строки файла /etc/crontab с указанием имени пользователя:

 

0/1 * * * * ИмяПользователя Команда

 

 

Разработка

 

Работа скрипта проверена в CentOs 5.8 и в Debian Squeeze. Обсудить скрипт можно на форуме или написать автору на емайл (см. внизу страницы).

 

 

Скрипт

 

#!/bin/sh

 

# Cron Emulator v.0.1

# © Sergey M. Stepanov 2013, xintrea@gmail.com, https://webhamster.ru

# License: GPL v.3

 

userName=`whoami`

 

echo "Variable names:"

list=`export | sed 's/^export //' | sed 's/=.*//'`

echo $list

 

echo "Remove all variables"

for line in $list

do

 echo "Remove variable: $line"

 unset $line

done

 

export HOME="/home/${userName}"

export LOGNAME="${userName}"

export OLDPWD="/home/${userName}"

export PATH="/usr/bin:/bin"

export PWD="/home/${userName}"

export SHELL="/bin/sh"

export SHLVL="1"

export USER="${userName}"

 

echo "User variable set:"

export

 

echo "Run examine commands..."

 

# Examine commands

 

... Your commands ...

 

 



К списку проектов

Поделиться этой страницей


Статистика


RSS подписка

Подпишитесь на новости сайта по RSS


 WebHamster.Ru
 Домик любопытного хомячка
Яндекс индекс цитирования
Почтовый ящик