crontab用的自己的一套环境变量,并没有加载/etc/profile和~/.bash_profile等
1、脚本里的命令使用绝对路径
2、在脚本里添加要使用的路径(个人选择)
PATH=$PATH:/opt/mysql-8.0.32/bin
#echo $PATH
#env
3、在脚本里加载配置文件
. /etc/profile
. ~/.bash_profile
4、在contab配置时设置
[root@dev1 ~]# crontab -e
#mysqlbackup
PATH=/usr/bin:/bin:/opt/mysql-8.0.32/bin
* * * * * /root/mysqlbackup.sh >> mysqlbackup.log 2>&1
[root@dev1 ~]# crontab -e
#mysqlbackup
* * * * * . /etc/profile; /root/mysqlbackup.sh >> mysqlbackup.log 2>&1
备注:在corntable 中执行多条语句时,用分号“;”隔开。以上例子就是先执行. /etc/profile; 这条命令,然后再运行sh脚本。
5、修改crontab配置文件
[root@dev1 ~]# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PATH=$PATH:/opt/mysql-8.0.32/bin
...
用户的crontab没写在这里,在这配应该无效。
查看crontab的env
crontab -e
* * * * * env > /tmp/env.txt
tail -f /tmp/env.txt

本文讲述了如何在Cronjob中自定义环境变量,如使用绝对路径、添加PATH、加载配置文件,并展示了如何在crontab配置中正确设置路径和执行多条命令,以及检查和记录环境变量的过程。
1328

被折叠的 条评论
为什么被折叠?



