我每小时都有一个crontab..bash_profile当用户从终端运行作业时,运行它的用户在该工作中具有环境变量,但是,显然这些在运行时不被crontab拾取.
我试着在设置它们.profile和.bashrc,但他们似乎仍然没有得到回升.有谁知道我可以把crontab可以拿到的环境变量放在哪里?
我需要发送一个在我个人定义的个人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 …