У меня есть сценарий, который должен запускаться в разных средах, используя cronjob в Solaris. Как установить переменные среды для каждой среды перед cronjob. Я пытался инициализировать конкретный env. переменные перед каждой cronjob, но это не тренировка. Может кто-нибудь дать способ сделать это?Cronjob для разных сред
ответ
Вы можете назначить переменные среды непосредственно в кронтабе, просто добавьте строку
VAR = значение
Это вступит в силу для всех хрон рабочих мест для этого пользователя на этой машине.
Или это то, что вы пробовали? Я не уверен, что произойдет, если вы попытаетесь назначить одну и ту же переменную более одного раза, я предполагаю, что только последний будет иметь эффект.
Я пробовал это, назначив переменные непосредственно перед cronjob и дал промежуток времени между всеми заданиями другой среды, но это не сработало для меня. Я сделал то же самое, что и в Linux, он работал нормально, но то же самое не работает в Solaris – user1
Вы можете экспортировать варры, которые вам нравятся в cron, или исходный файл с несколькими настройками. Следующие 4 записи crontab используют разные настройки среды.
10 * * * * export ONEVAR=firstExample; myscript >/dev/null 2>&1
20 * * * * export ONEVAR=secondExample; myscript >/dev/null 2>&1
30 * * * * . /home/user2262977/settings3; myscript >/dev/null 2>&1
40 * * * * . /home/user2262977/settings4; myscript >/dev/null 2>&1
EDIT Другим решением является использование параметра в сценарии (или обертку скрипт, призывающую скрипт). Crontab будет выглядеть
10 * * * * /home/user2262977/myscript settings1 >/dev/null 2>&1
20 * * * * /home/user2262977/myscript settings2 >/dev/null 2>&1
30 * * * * /home/user2262977/myscript settings3 >/dev/null 2>&1
40 * * * * /home/user2262977/myscript settings4 >/dev/null 2>&1
и сценарий будет начинаться с
case $1 in
"settings1")
ONEVAR=firstExample
SECONDVAR=firstSomething
SERVER=firstServer
;;
"settings2")
ONEVAR=secondExample
SECONDVAR=secondSomething
SERVER=secondServer
;;
"settings3")
ONEVAR=thirdExample
SECONDVAR=thirdSomething
SERVER=thirdServer
;;
"settings4")
ONEVAR=somethingCompletelyDifferent
SECONDVAR=didntExpectThisOneComing
SERVER=stackoverflow.com
;;
esac
Я пробовал тот же созданный файл, содержащий все переменные окружения и добавленный в cronjob непосредственно перед запуском скрипта, но все же он не работал для меня. Фактически я запускаю скрипт на сервере базы данных, который подключается как SYSDBA для различные экземпляры, присутствующие на сервере базы данных. Что-нибудь еще, что можно было бы сделать? Это была бы отличная помощь. – user1
Можете ли вы показать свою линию crontab? Настройки должны быть выполнены в строке в качестве вызова вашего сценария и должны быть получены с помощью точки. Когда вам нужно ksh, скажем так в строке shebang скрипта или в вызове myscript –
Что вы подразумеваете под «добавлением к кронтабу непосредственно перед запуском скрипта»? Не будет работать одно задание cron, задающее переменные, а другое - скрипт. Каждое задание cron полностью независимо и начинается с минимальной среды. Если вам нужно различное значение для переменной для каждого экземпляра, я бы предложил передать ее как аргумент скрипту. –
- 1. package.json для разных сред?
- 2. Как разработать для разных сред
- 3. Различные действия для разных сред
- 4. PHP Cronjob для разных пользователей
- 5. Можно ли переопределить facelets.development для разных сред?
- 6. Профили Maven для разных сред - плохая практика?
- 7. TestFlight: сборка проектов iOs для разных сред
- 8. Различные пути библиотеки для разных сред построения
- 9. как обрабатывать переадресации php для разных сред
- 10. Url in jQuery Скрипты для разных сред?
- 11. Как обрабатывать файл AndroidManifest для разных сред
- 12. Разделение Google Analytics для разных сред
- 13. Разделительные сейфовые хранилища для разных сред?
- 14. Capistrano: организация папок для разных сред
- 15. Vagrant + несколько провайдеров для разных рабочих сред
- 16. Преобразование app.config для 3-х разных сред
- 17. Различные сборки Android для разных сред
- 18. Отдельная строка соединения для разных сред
- 19. Создайте различные APK для разных сред (Xamarin.Android)
- 20. Миграции данных Entity Framework для разных сред
- 21. Как настроить RabbitMQ для разных сред?
- 22. Laravel небольшие различия для разных сред
- 23. Настроить Sentry для разных сред (этап, производство)
- 24. Способы сохранения отдельных настроек для разных сред?
- 25. Списки LaTeX: разные счетчики для разных сред листинга
- 26. Как настроить статическую HTML-страницу для разных сред?
- 27. Общие стратегии при определении весенних бобах для разных сред
- 28. Как использовать разные файлы .settings для разных сред .NET?
- 29. NLog Файлы конфигурации для разных сред в пакете Nuget
- 30. Solr DataImport: управление конфигурацией для разных сред (разработка/этап/производство)
Пожалуйста, покажите нам именно то, что вы пробовали. –