作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将在我的个人 .bashrc
中定义的个人 env
变量 $FTP111_PASSWD
发送到 crontab
执行. 如何在crontab上设置环境变量?
我最初的 shell 脚本,名为 cron4_etc.sh
,是为 crontab
执行而创建的:
#!/bin/bash
cd /myFolder/
ftp -n -i <<EOF
open 101.111.111.111
user myUser "$FTP111_PASSWD"
mget check_*.log
bye
EOF
如果我通过终端 ./cron4_etc.sh
执行脚本,它执行正常,但如果我使用以下 crontab
行启动它
*/20 * * * * /home/myUser/cron4_etc.sh > /tmp/cron4.log 2>&1
crontab 说
Password: Login incorrect.\nLogin failed.
我尝试使用 this suggestion 改进我的脚本,但错误仍然存在:
#!/usr/bin/env bash
# set environment
source /home/myUser/.bashrc
cd /tmp/pg_io/PGW
ftp -n -i <<EOF
open 101.111.111.111
user myUser "$FTP111_PASSWD"
mget check_*.log
bye
EOF
PS:我使用的是 Ubuntu 18 LTS,但问题是针对通用 crontab。
最佳答案
我最喜欢的解决方案来自 Augusto Destrero , 谁提供了以下 answer一个非常相似的问题:
Setting vars in
/etc/environment
also worked for me in Ubuntu. As of 12.04, variables in /etc/environment are loaded for cron.
有些人建议做一个简单的 env >>/etc/environment
来附加你所有的环境变量,但我会小心谨慎,而不是审查 /etc/environment
手动。
关于cron - 如何在 crontab 上使用 env .bashrc 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61438824/
我是一名优秀的程序员,十分优秀!