我有一个脚本,它将在Solaris上使用cronjob在不同的环境中运行。如何在cronjob之前为每个环境设置环境变量。我试图通过启动特定的env。每个cronjob之前的变量,但它没有锻炼。任何人都可以提供一种方式来做到这一点针对不同环境的Cronjob
回答
您可以在crontab直接分配环境变量,只需添加一行
VAR =价值
这将生效的所有cron作业该机器上的用户。
或者你试过了吗?我不确定会发生什么,如果您尝试多次分配相同的变量,我的猜测是只有最后一个会有效果。
我试图通过在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
编辑 另一种解决方案是使用在脚本中的参数(或包装脚本调用脚本)。 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的调用中这样说。 –
“在运行脚本之前添加到crontab中”是什么意思?只有设置变量和运行脚本的另一个作业不会有效。每个cron作业都是完全独立的,并以最小的环境开始。如果每个实例的变量需要不同的值,我建议将其作为参数传递给脚本。 –
- 1. 针对不同环境的Facebook API
- 2. 针对不同构建环境的不同库路径
- 3. 针对不同环境构建不同的APK(Xamarin.Android)
- 4. 针对不同环境的不同Android版本
- 5. 针对不同环境的不同行为
- 6. 厨师 - 针对不同环境的不同文件
- 7. 针对不同开发者的不同“开发”环境
- 8. 针对不同环境的不同security.yml文件
- 9. 针对不同环境测试的春天云合同
- 10. CronJob,Django和环境变量
- 11. 针对不同环境的JavaScript项目的自动化部署
- 12. 的Rails:针对不同的环境特定耙任务相关
- 13. AWS Elastic Beanstalk - 针对不同环境的单独配置
- 14. 针对不同部署环境的默认servlet映射
- 15. 针对不同环境的实体框架数据迁移
- 16. 定制Grails和Flex构建针对不同的环境
- 17. 一个或多个亲和组针对不同的环境?
- 18. 针对不同环境的Maven war/jar文件版本
- 19. 针对不同项目的虚拟环境和python版本
- 20. 如何跳过针对不同环境的测试场景
- 21. 针对不同环境(Java)的日志记录配置文件
- 22. Dockerfile和搬运工-compose.yaml针对不同的环境
- 23. Maven和Android的 - 略有不同的是建立针对不同的环境
- 24. 我们可以针对不同的环境有不同的路线吗?
- 25. 如何确定cronjob中的环境
- 26. LaTeX列表:针对不同列表环境的不同计数器
- 27. 不同环境
- 28. 不同的环境
- 29. 如何对不同的环境不同的环境配置文件Spring MVC中
- 30. 在Elastic Beanstalk上针对不同环境使用不同配置部署Python
请告诉我们你尝试过什么。 –