Pet*_*uss 2 cron environment-variables
我需要发送一个在我个人定义的个人env变量 来执行。如何在 crontab 上设置环境变量?$FTP111_PASSWD.bashrccrontab
cron4_etc.sh我为执行而创建的名为 的原始 shell 脚本crontab是:
#!/bin/bash
cd /myFolder/
ftp -n -i <<EOF
open 101.111.111.111
user myUser "$FTP111_PASSWD"
mget check_*.log
bye
EOF
Run Code Online (Sandbox Code Playgroud)
如果我通过终端执行脚本,它执行得很好,但是如果我使用以下行./cron4_etc.sh启动它crontab
*/20 * * * * /home/myUser/cron4_etc.sh > /tmp/cron4.log 2>&1
Run Code Online (Sandbox Code Playgroud)
crontab 说
密码: 登录不正确。\n登录失败。
我尝试使用此建议改进我的脚本,但错误仍然存在:
#!/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
Run Code Online (Sandbox Code Playgroud)
PS:我使用的是 Ubuntu 18 LTS,但问题是针对通用 crontab 的。
我最喜欢的解决方案来自Augusto Destrero ,他对一个非常相似的问题提供了以下答案:
在 Ubuntu 中设置 vars
/etc/environment也对我有用。从 12.04 开始,为 cron 加载 /etc/environment 中的变量。
有些人建议做一个简单的env >> /etc/environment附加所有环境变量的操作,但我会小心谨慎,而不是/etc/environment手动检查。
| 归档时间: |
|
| 查看次数: |
4278 次 |
| 最近记录: |