ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Crontab 使用指定用户环境变量执行命令

2022-03-07 16:02:07  阅读:207  来源: 互联网

标签:bin 执行命令 SHELL Crontab source && 环境变量 bash


不太理解为何中文技术博客搜不到这个问题的答案。。

其实 crontab 可以直接指定使用什么 shell 因为会用到 source 的关系所以我们可以先制定 shell 为 bash

SHELL=/bin/bash

既不需要自己去建 shell 脚本指定 #!/bin/sh 也不需要在要执行的命令前面加多余的参数。

 

但是也的确有个坑,我理解绝大多数同学要加载环境变量想法都跟我一样会把环境变量存在 ~/.bashrc 中。然后在执行的时候会尝试 source 该文件,比如

SHELL=/bin/bash
12 4 * * * source ~/.bashrc && cd /home/ubuntu/social-insights-magnus/ && xxxx

但是我发现,这样是无法读取到对应环境变量的。交互环境执行没问题,但是使用 crontab 就是不行。这一点我看了一下没弄太明白,但是我们可以新建文件 ~/.bash_profile 将环境变量放在这个里面申明。

然后重写刚才的 crontab 任务

SHELL=/bin/bash
12 4 * * * source ~/.bash_profile && cd /home/ubuntu/social-insights-magnus/ && /opt/go/bin/go xxxx

即可。

 

标签:bin,执行命令,SHELL,Crontab,source,&&,环境变量,bash
来源: https://www.cnblogs.com/piperck/p/15976322.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有