gpt4 book ai didi

bash - 如何通过 Cron 运行 bash 脚本

转载 作者:行者123 更新时间:2023-11-29 09:01:35 26 4
gpt4 key购买 nike

我见过其他类似的问题,但我找不到任何关于如何找出通过 Crontab 运行 Bash 脚本的正确方法的真实信息。 .sh 文件位于用户目录中(在我的例子中是 serverpilot)。

脚本正在尝试复制 apps 文件夹的内容并发送到我的 S3 存储桶。当从终端使用 sh backupS3.sh 运行时,该脚本完美运行,但通过 Cron 却没有任何乐趣。我见过人们引用 PATH 变量等,但不知道从哪里开始!

/backupS3.sh

#!/bin/sh
echo 'Started backing to S3'
date +'%a %b %e %H:%M:%S %Z %Y'
aws s3 sync /apps s3://bucketname
date +'%a %b %e %H:%M:%S %Z %Y'
echo 'Finished backing to S3'

定时任务

*/10 * * * * /backupS3.sh >> backupS3.log  

任何人都可以指出我做错了什么明显的事情吗?谢谢!

编辑:我在 cron 命令的末尾添加了 2>&1,现在我在日志文件中得到了一些东西:

/bin/sh: 1:/backupS3.sh: 未找到

最佳答案

在路径名中,开头的 / 并不表示“主目录”;它总是指文件系统的根目录,无论您以谁身份登录。您需要使用脚本的实际完整绝对路径(例如 /home/serverpilot/backupS3.sh)。如果 crontab 属于主目录保存脚本的同一用户,您可以使用 "$HOME"/backupS3.sh 系统会为您填写他们的主目录路径。或者,更简单地说,只需使用 ./backupS3.sh,因为 cron 作业从它们的工作目录开始,等于它们所有者的主目录。

如果这不起作用,那么“用户目录”的意思与“主目录”的 POSIX 概念不同,或者脚本不可执行(您可以通过运行命令修复 chmod +x backupS3.sh一次)。

如果您不确定完整路径是什么,只需在保存脚本的同一目录中运行 pwd 命令,然后输入输出,后跟斜杠,在脚本名称前。

关于bash - 如何通过 Cron 运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37574458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com