我需要发送个人信息env
多变的$FTP111_PASSWD
以我个人定义.bashrc
to 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
line
*/20 * * * * /home/myUser/cron4_etc.sh > /tmp/cron4.log 2>&1
crontab 说
密码: 登录不正确。\n登录失败。
我尝试使用改进我的脚本这个建议 https://stackoverflow.com/a/58725211/287948,但错误仍然存在:
#!/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 的。
我最喜欢的解决方案来自奥古斯托·德斯特罗 https://stackoverflow.com/users/2393703/augusto-destrero,谁提供了以下内容answer https://stackoverflow.com/a/34492957/8330162一个非常相似的问题:
设置变量/etc/environment
也在 Ubuntu 中为我工作。从 12.04 开始,为 cron 加载 /etc/environment 中的变量。
有些人建议做一个简单的env >> /etc/environment
附加所有环境变量,但我会小心谨慎并进行审查/etc/environment
手动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)