cron运行的bash脚本出现奇怪的问题

时间:2019-02-28 15:46:13

标签: bash cron

我的Docker容器中每小时都有cron运行bash脚本:

#!/bin/bash
/usr/bin/generate_signing_key -k $AWS_SECRET_ACCESS_KEY -r $AWS_DEFAULT_REGION > /usr/local/nginx/s3_signature_key.txt

{ read -r val1
  read -r val2
  sed -i 's! aws_signing_key .*; *$! aws_signing_key '$val1';!; s! aws_key_scope .*; *$! aws_key_scope '$val2';!;' /etc/nginx/nginx.conf
} < /usr/local/nginx/s3_signature_key.txt

if [ -z "$(pgrep nginx)" ]
  then
     nginx -c /etc/nginx/nginx.conf
  else
     nginx -s reload
fi

因此它正在运行Python脚本generate_signing_key,并将结果保存到s3_signature_key.txt文件中。然后sed取一些值并更新nginx的配置。

如果手动运行脚本,并且我以cron方式运行,则脚本正在运行: cd / && run-parts --report /etc/cron.hourly

不幸的是,如果cron本身运行它,那么它将对输出s3_signature_key.txt文件进行清零并清除nginx配置中的值。

有什么想法吗?

0 个答案:

没有答案