首页 > 解决方案 > 尝试使用 crontab 添加以下内容会导致第 2 行出现“糟糕的一分钟”错误

问题描述

我对我认为可能是一个简单的语法错误感到茫然。第二行是什么导致 crontab 抛出“糟糕的一分钟”?在此先感谢您的帮助。

#!/bin/bash
if pgrep -fx "plexdrive mount -v 3 --chunk-check-threads=16 --chunk- 
load-threads=16 --chunk-load-ahead=16 --max-chunks=256 /home/username/files/Google/" > /dev/null
then
echo "Plexdrive is running."
else 
echo "Plexdrive is not running, starting Plexdrive"
fusermount -uz /home/username/files/Google/
screen -dmS plexdrive plexdrive mount -v 3 --chunk-check-threads=16 --chunk-load-threads=16 --chunk-load-ahead=16 --max-chunks=256 /home/username/files/Google/
fi
exit

command:pgrep -fx "plexdrive mount -v 3 --chunk-check-threads=16 --chunk-load-threads=16 --chunk-load-ahead=16 --max-chunks=256 /home/username/files/Google/" 直接从命令行运行得很好(返回进程号),所以我很确定我只是不理解如何正确编写逻辑语句。

注意:服务器是远程的,我只是一个用户。我有能力添加到 cron 但不能添加到服务中 - 因此这种方法可以解决确保 plexdrive(通过熔断器)始终保持此挂载点活动的问题。

标签: bashubuntucron

解决方案


应该阅读crontab 的外观。无论如何,不​​是 bash 源代码。它是一个用于启动(程序和)bash 脚本的配置文件,而不是包含bash 脚本。

crontab 行包含以下字段:

  • 分钟,
  • 小时,
  • 一个月的一天,
  • 月,
  • 星期几,

每个都指定何时运行命令,以及

  • 要运行的命令。

即,如果您希望脚本在每个整小时后五分钟运行,并且您的脚本被命名为“my_check_script”(并且在 中PATH),那么 crontab 行应该如下所示:

5  *  *  *  *  my_check_script

检查链接的文档以获取更多详细信息。


推荐阅读