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

2024-04-26

我需要发送个人信息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(使用前将#替换为@)

如何在 crontab 上使用 env .bashrc 变量? 的相关文章

  • 如何将环境变量 PACKAGE_DIRS 链接到我的本地私有包?

    我正在尝试设置一个环境变量 以便当我正在处理 Meteor 应用程序时 并且我想将本地私有包链接到我的项目 Meteor 将查找我在本地环境中创建的包目录 我做的第一件事是创建一个包目录并向其中添加一个基本的测试包 Users scotty
  • 当 Verb="runas" 时设置 ProcessStartInfo.EnvironmentVariables

    我正在开发一个 C 应用程序 我需要创建变量并将其传递给新进程 我正在使用ProcessStartInfo EnvironmentVariables 新进程必须提升运行 因此我使用 Verb runas var startInfo new
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 为进程设置环境变量

    环境变量的概念是什么 在 C 程序中 我需要调用可执行文件 该可执行文件将调用驻留在同一文件夹中的一些其他可执行文件 可执行文件依赖于两个环境变量 PATH 和 RAYPATH 的正确设置 我尝试了以下两件事 我创建了一个进程并在 Star
  • 在 .NET 中获取远程计算机上环境变量的实际值

    我正在尝试获取实际值 of 环境变量 这是我到目前为止所拥有的 string query string Format Select VariableValue From Win32 Environment Where Name 0 vari
  • 调用另一个 PHP 脚本并在其他脚本完成之前将控制权返回给用户

    我实际上正在尝试将其应用于发送电子邮件的脚本 发送电子邮件部分需要几秒钟 这太长了 我想要的是第一个脚本执行其操作并触发另一个脚本 发送电子邮件 但我希望第一个脚本将控制权返回给用户 而无需等待第二个脚本发送电子邮件 我考虑过的选项 计划任
  • 在跨平台的 npm 脚本中使用环境变量

    我正在构建一个 package json 并使用 npm run 来运行一些脚本 确切地说 https docs npmjs com misc scripts https docs npmjs com misc scripts 我的脚本需要
  • 如何在 github 复合操作步骤中动态设置环境变量?

    我确实需要它作为一个环境变量 这是为了复合动作具体来说 在复合操作中 我尝试了许多不同的设置环境变量的方法 我发现做到这一点的唯一方法是使用env在步骤本身内 runs using composite steps name A step e
  • 如何将 .bat 文件中的变量获取到 PowerShell 脚本中?

    我正在用 PowerShell 替换 bat 脚本的部分内容 批处理文件的配置是通过以下文件完成的set适当的环境变量 我正在寻找一种方法将这些变量值加载到 ps1脚本 无需修改 bat文件 因为它们也在其他地方使用 一个例子 bat看起来
  • 主管和环境变量

    我真的不知道如何让主管使用环境变量 下面是一个配置片段 program htNotificationService priority 2 autostart true autorestart true directory home ubun
  • 设置环境变量供节点检索

    我正在尝试遵循教程 它说 有几种加载凭据的方法 从环境变量加载 从磁盘上的 JSON 文件加载 键需要如下所示 USER ID USER KEY 这意味着如果您正确设置环境变量 您 根本不需要管理应用程序中的凭据 根据一些谷歌搜索 我似乎需
  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • 如何编写bash脚本来设置全局环境变量?

    最近写了一个设置环境变量的脚本 看一下 bin bash echo Pass a path read path echo path defaultPath home whoami Desktop if n path then export
  • git push 无法在 cron 作业中工作

    我目前正在清理 CentOS 6 服务器上其他人留下的烂摊子 有一个应用程序需要每6小时备份一次到github帐户 有一个脚本负责准备数据并负责 git add 和 git commit git Push 由 expect 脚本负责 这样做
  • 在 Postman 中使用 url 参数中的环境变量

    是否可以使用 postman 将环境变量添加到 url 参数中 例如见下图 是的 我正在使用它 这是我的屏幕 My IP is 192 168 0 38 like below 现在 我正在使用我的笔记本电脑 但是 如果我完成工作 我会将主机
  • cygwin中刷新windows用户的环境变量

    我想在执行 setx VARNAME VARVALUE 特别是路径 后刷新 cygwins 环境 export VARNAME VARVALLUE 不是一个选项 因为如果导出的值是路径 类似于 UNIX 格式 我需要转换导出的值 但 VAR
  • cron 任务是否会阻塞主进程或者nodejs 会创建一个worker 来执行cron 任务

    我在用节点 cron https github com ncb000gt node cron每分钟执行一些繁重的任务 更新数据库 这个任务是使用主进程来工作还是nodejs会创建一些工作人员来完成这些任务 var CronJob requi
  • 未加载测试环境的节点 dotenv 文件

    我有两个 dotenv 文件 一个用于开发 另一个用于测试 const dotenv require dotenv if process env process env NODE ENV dotenv config path env pro
  • Maven 配置文件激活条件中 os.family 的值

    Maven 允许根据其运行的操作系统系列激活某些构建配置文件 例如
  • 使用 CreateProcessAsUser 和 CreateEnvironmentBlock 创建进程后未设置 Clientname

    我编写了一个在本地系统帐户下运行的 C 服务 当用户登录终端服务器时 我用它来生成一个进程 该服务实现了OnSessionChange方法并接收SessionChangeDescription具有相应SessionID的消息 我使用此 Se

随机推荐