linux定时任务内环境变量引起错误解决方法

定时任务内环境变量和shell环境变量的区别

shell环境变量PATH查询用echo $PATH命令

[[email protected] /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin shell   Linux环境变量

定时任务内环境变量PATH查询是把echo $PATH的命令写入脚本,再把执行结果写入文本查询结果。

定时任务默认内部环境变量为/usr/bin:/bin 

可以看出定时任务内部环境变量PATH是不全的,只有/usr/bin:/bin。

举个ifconfig命令的例子,查询命令路径的命令是which。

[[email protected] /]# which ifconfig
/sbin/ifconfig

看到结果就知道,定时任务内环境变量PATH里并没有这个命令的路径。

所以在脚本加入ifconfig命令后会报错。

[[email protected] scripts]# tailf/server/scripts/log/ip.log
/server/scripts/ip.sh: line 1: ifconfig:command not found 命令没有找到 

如何解决这类问题?

用which查询路径,给不在/usr/bin:/bin路径里的命令查询后加上路径。

[[email protected] scripts]# vim ip.sh
#!/bin/sh
/sbin/ifconfig

?如果脚本命令多的话,需要重新修改定时任务内环境变量PATH。

[[email protected] scripts]# vim ip.sh
#!/bin/sh
exportPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
ifconfig
时间: 2024-10-10 02:27:27

linux定时任务内环境变量引起错误解决方法的相关文章

linux Argument list too long错误解决方法

今日需要删除/tmp目录下的所有文件,文件数量比较多. ls -lt /tmp | wc -l385412 使用 rm * 后,系统提示错误 Argument list too long 原因是在linux下,试图传太多参数给一个系统命令(ls *; cp *; rm *; cat *; etc..)时,就会出现 Argument list too long错误. 解决方法如下: 使用find -exec 遍历,然后执行删除便可. sudo find /tmp -type f -exec rm

Linux mount: Structure needs cleaning 错误解决方法

"mount: Structure needs cleaning"报错 可以使用xfs_repair来修复,但是要注意 xfs_repair修复的分区中的文件都会丢失,即使是du能正常显示的文件也会丢失. [[email protected] /]# mount -a mount: Structure needs cleaning [[email protected] /]# xfs_repair /dev/sdl

linux上备份Oracle时EXP-00091的错误解决方法

unix/linux上备份Oracle时EXP-00091的错误解决方法 unix/linux上备份数据时的错误解决方法 EXP-00091: Exporting questionable statistics.解决方法 今日EXP数据发现如下错误: EXP-00091: Exporting questionable statistics. . . exporting table                     TAXVOU3129    2904185 rows exported EX

Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法

修改了lower_case_table_names=1 后,业务发有个库的表打不开了,看了表名以前是大写,查了一下如果设置不区分大小写, 以前的大小表名要改成小写.重启服务后可用! MYSQL在LINUX下数据库名.表名.列名.别名大小写规则如下: 1.数据库名与表名是严格区分大小写的 2.表的别名是严格区分大小写的 3.列名与列的别名在所有的情况下均是忽略大小写的 4.变量名也是严格区分大小写的 Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法

linux上的mysql报Table 'xxx' doesn't exist的错误解决方法

linux上的mysql报Table 'xxx' doesn't exist的错误解决方法 问题:程序报Table 'xxx' doesn't exist 的错误,但是查看数据库发现该表已经存在且字母也没有拼错. 原因:linux 上的mysql 默认是区分大小写导致的. 解决:改动mysql的配置文件,在my.cnf中的[mysqld]下面(位置不能错)加上lower_case_table_name=1这句(1表示不区分大小写,0区分大小写),保存重新启动mysql. 没有my.cnf文件,如

Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法

这两天在进行网站搬家,这次网站搬家采用直接打包mysql数据库和网页文件的形式进行迁移,上传好mysql data目录里面的网站数据库至VPS上mysql存放数据库的目录里面,解压就行.我的VPS存放数据库的路径是 /usr/local/mysql/var. 上传好网站数据,解压,配置好数据库链接参数就行,网站就能正常连接上了,我本以为这已 经是顺利迁移完成了,但后来操作的时候,发现只能读取数据库的内容,不能更改写入任何信息,提示#1036 – Table ‘* ‘ is read only (

mysql Access denied for user [email protected]错误解决方法总结(转)

mysql Access denied for user [email protected]错误解决方法总结(转) mysql Access denied for user \'root\'@\'localhost\'”解决办法总结,下面我们对常见的出现的一些错误代码进行分析并给出解决办法,有需要的朋友可参考一下. 错误代码 1045 Access denied for user 'root'@'localhost' (using password:YES) 解决办法是重新设置root用户密码,

GoldenGate 1403错误解决方法

OGG  oracle goldengate 1403错误解决方法 1. 错误描述WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, repyxb.prm: SQL error 1403 mapping SGPM.P_SMS_SEND to SGPM.P_SMS_SEND.WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, repyxb.prm:  Repositionin

C编译错误解决方法

1.expected identifier before numeric constant 一般情况下是枚举类型中的某个变量已经被#define定义过一次了,在项目空间中搜索你枚举类型中的所有变量类型,看看是否被#define过,如果被#define过,就把#define的删除或换个名字. C编译错误解决方法,布布扣,bubuko.com