环境:(产品,平台,机型,软件版本,等)AIX5L
问题描述:crontab中启动的shell脚本不能正常运行,但是使用手动执行没有问题,在$home/.profile中设定了脚本所需要的环境变量。
解答:cron命令的默认shell是/usr/bin/bsh,如果要在cron启动的脚本中使用ksh,就必须在脚本中的第一行添加“#!/usr/bin/ksh”的声明。
如果cron进程启动的shell脚本要用登录时的环境变量,就必须在cron启动的shell脚本中添加下面的内容,才能够在启动的脚本中使用
$home/.profile文件中的环境变量。
. $home/.profile
这是因为cron进程执行的shell脚本是不会自动加载用户目录下的.profile文件,所以需要脚本自己加载所需要的环境变量。
================
环境变量文件加载顺序
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
该文件被读取.
~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的
通常二者设置大致相同,所以通常前者会调用后者。
分享到:
相关推荐
当我们在 Linux 系统中使用 crontab 执行 jar 文件时,输出结果中出现中文乱码的原因是由于 Unix/Linux 下的 crontab 环境与用户环境的差异。通常情况下,用户环境中会设置一些环境变量,例如语言环境变量 LANG,...
然而,当你尝试在Crontab任务中使用环境变量时,可能会遇到一些问题,因为Crontab启动的命令并不像交互式登录那样加载完整的环境配置。本文将深入探讨如何在Crontab中正确地获取和设置环境变量。 首先,我们需要...
7. **环境变量**:crontab任务执行时,其环境可能与交互式登录会话不同,因此需要特别注意环境变量的设置,比如PATH。 8. **权限管理**:每个用户都有自己的crontab文件,root用户还可以通过`crontab -u 用户名`来...
- `-e`:编辑crontab文件,系统默认使用VI编辑器,可以通过设置`VISUAL`环境变量选择其他编辑器。 - `-l`:列出当前用户的crontab任务。 - `-r`:删除当前用户的crontab任务。 - `-v`:查看crontab任务的状态。 ...
3. PATH:添加ORACLE_HOME/bin到PATH环境变量中,使得可以在任何目录下执行Oracle相关的命令。 4. LD_LIBRARY_PATH:存放Oracle所需的动态链接库,确保运行时能找到正确的库文件。 5. TNS_ADMIN:指定网络配置文件...
此外,Crontab支持环境变量和注释,可以提高脚本的可读性和可维护性。同时,`anacron`是Cron的一个扩展,用于处理那些不常运行但需要在特定时间点执行的任务,特别适合在网络不可靠或者机器不常开机的情况下。 总结...
使用 Crontab 命令时需要注意的是,运行脚本中能够访问到的环境变量和当前测试环境中的环境变量未必一致。一个比较保险的做法是在运行的脚本程序中自行设置环境变量 (export) 。 在使用 Crontab 命令时,还需要注意...
【在Windows下配置crontab】的知识点主要集中在如何在Windows环境中使用Cygwin来实现类似于Linux中的计划任务管理。Crontab是Linux和Unix系统中用于管理周期性任务的工具,而在Windows系统中,由于Dos Scripts的功能...
在`crontab`环境中,某些默认环境变量可能与交互式会话不同,比如`$HOME`、`$PATH`等。如果脚本依赖于特定的环境变量,需要在`crontab`文件中显式设置它们。 **4. `cron`守护进程** `cron`守护进程负责定期检查用户...
因此,在编写定时任务时,应确保所有需要的环境变量、路径和依赖项都在脚本中明确指定。另外,为了安全起见,定期检查`crontab`文件,防止未经授权的修改。 8. **调试crontab**:由于`crontab`任务是在后台无声无息...
crontab 中的环境变量 在使用 crontab 时,需要特别注意环境变量的问题。例如,在执行 Oracle 的 sqlplus 命令时,需要设置相关的环境变量。在执行文件中必须列出这些环境变量。 例如,下面是一个执行 sqlplus ...
此外,crontab中运行的程序会被送到shell执行,该shell仅具有三个环境变量:USER, HOME, SHELL。因此,如果脚本中需要其他环境变量,需要在脚本中显式地设置。 需要注意的是,在生产环境中,一些任务的调度需要谨慎...
当crontab执行命令时,它可能没有用户的完整环境变量,因此在脚本中设置必要的环境变量(如`export PATH=$PATH:/usr/local/bin`)是非常重要的。此外,确保命令的完整路径被指定,因为crontab可能无法解析只包含...
四、Crontab环境变量 由于`crontab`任务是在后台运行,它们不会继承用户的环境变量。因此,如果命令依赖于某些环境变量,如`PATH`,需要在crontab文件中显式设置。例如: ```bash SHELL=/bin/bash PATH=/usr/local...
- **编辑Crontab文件**:`crontab -e`用于编辑用户的Crontab文件,系统默认使用`vi`作为编辑器,但可以通过设置`VISUAL`环境变量来更改。例如,若想使用`joe`编辑器,可设置`setenv VISUAL joe`。 - **查看Crontab...
如果遇到crontab任务未按预期执行,首先检查任务的路径和环境变量是否正确,确保脚本能在非交互环境中正常运行。其次,检查用户权限,确保用户在`/etc/cron.d/cron.allow`文件中,或者在没有此文件的情况下,使用...
在脚本中使用这些字符时,需要转义,或者用引号括起来。 8. **交互式命令**: - `cron` 不支持交互式命令,如 `read` 或 `passwd`。如果脚本中有这类命令,需要修改或移除。 9. **时间格式**: - 确保`crontab` ...
- 可以在 crontab 文件中设置环境变量,使得定时任务能访问到这些变量。 ```bash #!/bin/bash MY_VAR="example" * * * * * echo $MY_VAR > /tmp/test.txt ``` 2. **脚本参数传递** - 如果需要向脚本传递参数...
在 crontab 文件中可以设置环境变量,例如: ```bash MAILTO=root ``` 此设置会将所有 cron job 的输出邮件发送给 root 用户。 #### 七、注意事项 - 执行 cron job 的时候,如果命令中有空格或特殊字符,请确保它们...
在使用 Crontab 时,需要注意的是,运行脚本中能够访问到的环境变量和当 Crontab 前测试环境中的环境变量未必一致。一个比较保险的做法是在运行的脚本程序中自行设置环境变量(export)。 要使用 Crontab,需要首先...