我不知所措,因为我认为这可能是一个简单的语法错误。是什么在第二行上导致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
命令: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(通过熔丝)始终保持该安装点有效的问题。
答案 0 :(得分:1)
您应该阅读what a crontab should look like。在任何情况下都不是bash来源。它是开始(程序和)bash脚本的配置文件,而不是包含 bash脚本的文件。
crontab行包含以下字段:
每个都指定了何时运行命令,以及
也就是说,如果您希望脚本在每个整小时后的五分钟内运行,并且脚本名为“ my_check_script”(在PATH
中),则crontab行应如下所示:
5 * * * * my_check_script
查看链接的文档以获取更多详细信息。