CRON 作业未捕获脚本中的更改

Posted

技术标签:

【中文标题】CRON 作业未捕获脚本中的更改【英文标题】:CRON job not capturing changes in script 【发布时间】:2022-01-09 00:22:44 【问题描述】:

我有一个这样的 cron 工作

*/5 * * * * /vault/configure_snapshots.sh > /var/log/cron/snapshots

我创建了一个脚本并在初始化期间上传了它(例如 AWS EC2 用户数据)。 后来我意识到我必须为测试做一些改变。我添加了`set -x:

set -x

server_ip=$(curl http://169.254.169.254/latest/meta-data/local-ipv4)
source /etc/environment
export VAULT_TOKEN=$(aws secretsmanager get-secret-value --secret-id $VAULT_ROOT_TOKEN_AWS_SECRET_ID | jq -r '.SecretString' | jq -r '.root_token')

# Check if the server is the leader in the cluster
/usr/local/bin/vault operator raft list-peers -format=json > /vault/peers.json
leader_ip=$(jq -r '.data.config.servers[] | select(.leader == true).address' /vault/peers.json | cut -d ':' -f 1)

if [[ $server_ip == $leader_ip ]]; then

   
    echo "Taking snapshot..."

    # ... trimmed

else
    echo "Not the leader. Skipping snapshot."
fi

结果是:

root@ip-100-73-25-168:/var/snap/amazon-ssm-agent/4046# cat /var/log/cron/snapshots
Not the leader. Skipping snapshot.

为什么我设置了 -x 却没有打印所有内容?

【问题讨论】:

【参考方案1】:

替换

> /var/log/cron/snapshots

> /var/log/cron/snapshots 2>&1

也获得标准错误。

【讨论】:

以上是关于CRON 作业未捕获脚本中的更改的主要内容,如果未能解决你的问题,请参考以下文章

Magento - cron 作业脚本正在运行,但 Magento 订单确认电子邮件未发送

如何创建一个 cron 作业来运行 ruby​​ 脚本?

阻止公共访问CodeIgniter中的CRON作业脚本

需要很长执行时间的 php 脚本的 Cron 作业

Cron 作业未在所有站点上激活

Python 脚本未在 crontab 中运行调用 pysaunter