gpt4 book ai didi

cron - 如何在 crontab 上使用 env .bashrc 变量?

转载 作者:行者123 更新时间:2023-12-02 16:42:05 25 4
gpt4 key购买 nike

我需要将在我的个人 .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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com