当 cron 运行时,shell 脚本中使用的环境变量在日志文件中显示为空白

2023-12-12

请原谅我的无知,但我对 shell 脚本和 Linux 中环境变量的使用有些陌生。

我有一个执行 MySQL 数据库备份的脚本。我在脚本中有以下几行用于记录数据库的成功转储:

output=`date; echo "Database export successful from $ENV_HOSTNAME to $BACKUP_HOSTNAME"`
echo $output >> /var/log/errorLog

我在 /etc/profile 中定义了变量(ENV_HOSTNAME 和 BACKUP_HOSTNAME),如下所示:

export ENV_HOSTNAME="env1.somename.com"
export BACKUP_HOSTNAME="env2.somename.com"

当我调用 printenv 时,我可以看到列出的这些变量,并且当我运行此脚本(以 root 身份)时,变量值正确显示在日志文件中。但是,当我将此脚本设置为使用 cron 运行时,变量值不会出现在日志文件中。我知道脚本会运行,因为我可以看到日期和字符串的其余部分,但变量为空:

Fri Nov 6 22:31:05 EST 2009 Database export successful from to

我确信我在这里遗漏了一些简单的东西,所以提前感谢您的帮助。


你的问题是:cron 不运行 /etc/profile。

cron 只需要很少的环境设置即可启动;任何你需要的东西,你都必须自己设置,所以习惯上让 cron 调用一个脚本来处理设置,然后是主要操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 cron 运行时,shell 脚本中使用的环境变量在日志文件中显示为空白 的相关文章

  • 为什么 gcc 会在显然不需要的时候生成 PLT?

    考虑这段代码 int foo int main foo while 1 int foo 在共享对象中实现 编译此代码gcc o main main c lfoo nostdlib m32 O2 e main no pic L shared给
  • Linux 在崩溃时自动重新启动应用程序 - 守护进程

    我有一个运行嵌入式 Linux 的系统 它的持续运行至关重要 基本上 它是一个与传感器通信并将数据中继到数据库和 Web 客户端的过程 如果发生崩溃 如何自动重启应用程序 此外 还有多个线程进行轮询 例如套接字和 uart 通信 如何确保没
  • 如果等于特定值则替换列

    我希望替换 CSV 中的第四列 如果它等于 N A 我正在尝试将其更改为 1 我似乎无法让它发挥作用 awk F if 4 N A 4 1 test csv 您可以使用以下内容awk awk F 4 4 N A 1 4 1 OFS test
  • python os.path.exists() 对于存在的 nfs 挂载目录文件失败

    我基本上有一个用于网站的网络服务器和另一个仅存储文件的网络服务器 文件服务器通过安装其目录之一连接到主服务器 该网站运行 Django 所以我主要处理 python 不管怎样 我似乎遇到了一些问题 文件被报告为不存在 即使它们实际上存在 基
  • 在linux中将数据“广播”到多个进程的规范方法?

    我有一个应用程序需要将数据流从一个进程发送到多个读取器 每个读取器都需要查看自己的流副本 这是相当高的速率 100MB s 并不罕见 因此我希望尽可能避免重复 在我的理想世界中 Linux 应该有支持多个读取器的命名管道 并为常见的单读取器
  • Bash 脚本在 for 循环中使用 sed 和变量?

    我正在尝试编写一个 bash 脚本 该脚本需要一些变量 然后使用 grep 对给定文件搜索进行查找 替换 以获取包含该字符串的文件列表 我认为我遇到的问题是在 sed 中看到变量我不确定它可能是什么 if searchFiles a old
  • Linux 上共享内存的生命周期是多长

    我正在使用 ftok shmget shmat shmdt 函数在 Linux 上创建 写入和读取共享段 如果我写入一个程序中的段 然后退出 然后稍后从另一个程序中读取该段 我会惊讶地发现数据仍然存在 我预计当共享一个段的最后一个进程执行
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • Visual Studio 代码中的“Git:gpg 未能签署数据”

    全新安装 Linux 后 我尝试设置我的环境 并且不断收到Git gpg failed to sign the data在本地提交更改时出错 我使用的是 Visual Studio Code 专有版本 而不是开源版本 gitconfig u
  • Cmake 错误未定义对“pthread_create”的引用

    我对 cmake FindThreads 进行了测试 这是我的源代码test cpp和CMakeLists txt include
  • 我应该如何从非 root Debian Linux 守护进程登录?

    我正在编写一个新的守护进程 它将托管在 Debian Linux 上 我发现 var log 具有仅 root 写入权限 因此我的守护进程无法在那里写入日志文件 但是 如果它写入那里 它似乎将获得自动日志轮转 并且也按照用户期望的方式工作
  • 如何更改解释器路径并将命令行参数传递给 Linux 上的“可执行”共享库?

    这是 可执行 共享库的最小示例 假设文件名 mini c Interpreter path is different on some systems definitely different for 32 Bit machines cons
  • Linux GCC 上 的 C++ 编译问题

    尝试过谷歌并在这里搜索 但没有运气 我正在尝试将一些使用 Windows 的代码移植到 Linux 上 然后我得到了大量的编译错误 我所做的只是 include
  • python中的多服务器监控/自动重启

    我有 2 个服务器程序 必须使用 GNU Screen 启动 我想使用基于 Python 的程序来强化这些服务器 防止崩溃 该程序启动每个屏幕会话 然后监视服务器进程 如果服务器进程崩溃 我需要 python 代码来终止无关的屏幕会话并再次
  • Python select() 行为很奇怪

    我在理解 select select 的行为时遇到一些困难 请考虑以下 Python 程序 def str to hex s def dig n if n gt 9 return chr 65 10 n else return chr 48
  • c - 后台运行的程序的退出状态

    我有一个任务 其中我必须创建一个迷你 shell 它能够执行很多操作 包括作业控制 我设法使用 fork 和 execvp 创建新的工作 但我还想获取 execvp 运行的程序的退出代码 根据我从其他帖子中查找到的内容 我可以使用以下方法来
  • Motif 库的水平绘制的 RowColumn 类 (C)?

    我正在使用 Motif Library 来完成我的工作 如果有人不熟悉这个库 您可以在这里找到文件列表https packages ubuntu com xenial amd64 libmotif dev filelist https pa
  • 共享库 RPATH 和二进制 RPATH 优先级

    如果共享库链接到二进制文件 并且共享库还依赖于其他库 则共享库的 RPATH 和二进制文件的 RPATH 的优先级 链接器搜索顺序 是什么 二进制文件的 RPATH 是否可以覆盖共享库中的 RPATH 我在共享库RPATH中设置的 ORIG
  • UNIX 域 STREAM 和 DATAGRAM 套接字之间的区别?

    这个问题是NOTSTREAM 类型和 DATAGRAM 类型 INTERNET 套接字之间的区别 我知道 STREAM 套接字使用 TCP 数据报套接字使用 UDP 以及所有 TCP UDP 内容 按顺序到达的数据包 ACK NACK 等
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的

随机推荐

  • Python 对制表符和空格缩进的解释

    我决定学一点 Python 第一个介绍说它使用缩进对语句进行分组 虽然最好的习惯显然是只使用其中一种 但如果我互换它们会发生什么 多少个空格将被视为等于一个制表符 或者如果制表符和空格混合在一起 它会根本无法工作吗 Spaces are n
  • 如何以编程方式从 DataTable 中删除 DataColumn

    我有一个代码 foreach DataColumn dataTableCol in this dataTable Columns bool columnFound false foreach GRTColumnView uiColumn i
  • Windows Phone Mango - ListBox 还是 LongListSelector?

    假设我需要显示一个包含大量记录的列表 哪个控件更好 或者说 哪个控件的滚动体验更好呢 我看到很多人报告了这个 LongListSelector 的问题 它真的有太多问题而无法使用吗 希望有人能为我阐明这一点 提前致谢 辛 如果您不需要分组
  • 当构造函数抛出异常时,会运行哪些析构函数?

    在 C 中 如果构造函数抛出异常 则运行哪些析构函数 特别是 如果异常发生在初始化列表或主体期间 有什么区别吗 另外 继承和成员呢 想必所有已完成的建筑都被毁坏了 如果只构造了一些成员 那么只有那些成员会被破坏吗 如果存在多重继承 所有完成
  • 使用 JavaMail 连接到 IMAP 时出现“A1 NO LOGIN failed”异常

    以下是我尝试连接的服务器的详细信息 mailbox password KexDa3P7hEtru mailbox domain mail lenderlive com mailbox host corp lcl mailbox userna
  • ElasticSearch:突出显示短语查询中的每个单词

    如何让 Elastic Search 只突出显示导致文档被返回的单词 我有以下索引 mappings document properties content type string fields english type string an
  • 如何从具有相对频率的表中绘制R中的饼图?

    我是 R 的新手 我需要绘制一个饼图 现在我已经尽力了 但它没有为我生成饼图 下面是我的代码 socialIssue lt matrix c 245 112 153 71 133 306 ncol 1 byrow T rownames so
  • 原因:java.security.UnrecoverableKeyException:无法恢复密钥

    我提供了一个名为 ABCC client store 的 jks 密钥库 当我将此密钥库导入到 cacerts 并尝试连接时 它显示 没有这样的算法 错误 PFA 堆栈跟踪 Caused by java security NoSuchAlg
  • 内联元素的填充

    我正在读一本关于 CSS 基础知识的书 书中声称内联元素具有完整的填充属性 但没有上边距 下边距属性 仅左 右边距特性 我的第一个问题是 我在哪里可以找到官方声明 我发现here如果上边距 下边距被设定为auto然后它被设置为0 但这和说的
  • 错误:没有名为 StatHline 的统计数据

    我有一个数据框如下 variable c D D C C C A B B B B value c 80 100 70 68 65 45 33 31 36 32 Count as integer c 5 10 4 5 2 7 3 5 6 2
  • Glide recyclerview 加载重复图像

    我有一个recyclerview with diffutil 我已经在使用Glide将图像加载到ImageViews on the onBindViewHolder我称我的函数为loadImage holder view item over
  • Tensorflow:确定预训练 CNN 模型的输出步幅

    我已经下载并正在使用以下方法实现一个机器学习应用程序Tensorflow Lite Posenet 模型 这个模型的输出是一个热图 这是我不熟悉的 CNN 的一部分 处理输出所需的一项信息是 输出步幅 它用于计算原始图像中找到的关键点的原始
  • 我们如何获取 12 小时格式的日期

    我希望如果用户从我的字符串设置中选择 24 小时 他们会得到 12 小时格式的时间 我正在使用这段代码 它没有显示正确的时间 timePicker datePickerMode UIDatePickerModeTime timePicker
  • 如何编写与集合完全匹配的 JPA 条件查询?

    我正在使用 JPA 2 0 和 Hibernate 4 1 0 Final 我有几个班级 小组和小组成员 每个 GroupMember 都绑定到一个用户对象 Entity Table name group public class Grou
  • 如何在绘图中使用自定义 png 图像标记?

    我想在散点图和折线图中使用客户标记 如何从 PNG 文件中制作自定义标记 我不相信 matplotlib 可以自定义这样的标记 看here对于定制级别 这远远达不到您的需求 作为替代方案 我已经编写了这个使用matplotlib image
  • 通过使用 Select 算法中的主元来重复

    我有一个问题 我无法获得该站点的 Select 算法的第 14 15 16 17 行的用途 有这个问题的网站位于here 编辑 此外 为该部分编写这些行是否正确 使用枢轴进行分区和重复 m 是我的主元 i 是该算法的输入 arrOne lt
  • 重复受限制的 DynamoDB 请求

    我正在使用适用于 PHP 的 AWS 开发工具包以编程方式与 DynamoDB 进行交互 我想检测对 DynamoDB 的请求是否已受到限制 以便在短暂延迟后可以发出另一个请求 现在 我假设限制请求未得到满足 亚马逊常见问题解答建议发生限流
  • Coldfusion CFMAIL 和 sendgrid

    我在我托管的同一台服务器上有 2 个客户端 它们都通过 sendgrid com 发送电子邮件 都有自己的帐户 我正在查看 sendgrid 上的报告 注意到 客户端 1 的类别显示在 客户端 2 的报告中 我花了很长时间与 sendgri
  • SOAPUI & Groovy Scripts,一次性执行多个 SQL 语句

    我有一些soapUI测试 它们使用groovy脚本首先将一些数据插入表中 以前 我一直使用以下代码片段来执行此操作 def conn context dbConnEtopup conn execute INSERT INTO A ID NA
  • 当 cron 运行时,shell 脚本中使用的环境变量在日志文件中显示为空白

    请原谅我的无知 但我对 shell 脚本和 Linux 中环境变量的使用有些陌生 我有一个执行 MySQL 数据库备份的脚本 我在脚本中有以下几行用于记录数据库的成功转储 output date echo Database export s