相关疑难解决方法(0)

Cron工作没有开始

我有一个我想要每5分钟执行一次的cron作业:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /scr_temp/scheduleSpider.sh
Run Code Online (Sandbox Code Playgroud)

/var/spool/cron/crontabs/root

cron应该执行shell脚本:

#!/bin/sh
if [ ! -f "sync.txt" ]; then
    touch "sync.txt"
    chmod 777 /scr_temp
    curl someLink
fi
Run Code Online (Sandbox Code Playgroud)

从命令行可以正常工作,但不能从cron工作.然而,cron本身是startet但脚本没有启动.

我读到了路径问题,但我真的不明白.我设置了一个将一些env数据写入文件的cron.这是输出:

HOME=/root
LOGNAME=root
PATH=/usr/bin:/bin
SHELL=/bin/sh
Run Code Online (Sandbox Code Playgroud)

如果我在命令行中执行env命令,我会得到以下PATH输出

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)

我必须在shell脚本中设置什么路径?

shell ubuntu cron

5
推荐指数
1
解决办法
3987
查看次数

Crontab权限被拒绝

我在运行脚本时遇到crontab问题。

我的sudo crontab -e看起来像这样:

05 00 * * * /opt/mcserver/backup.sh
10 00 * * * /opt/mcserver/suspend.sh
05 08 * * * /sbin/shutdown -r +1
11 11 * * * /opt/mcserver/start.sh  <--- This isn't working
Run Code Online (Sandbox Code Playgroud)

并且start.sh看起来像这样:

#!/bin/sh
screen java -d64 -Xincgc -Xmx2048M -jar craftbukkit.jar nogui
Run Code Online (Sandbox Code Playgroud)

并具有这些权限(ls -l输出)

-rwxr-xr-x 1 eve eve  72 Nov 24 14:17 start.sh
Run Code Online (Sandbox Code Playgroud)

我可以使用sudo从终端运行命令

./start.sh
Run Code Online (Sandbox Code Playgroud)

但这不会从crontab开始。如果我做

grep -iR "start.sh" /var/log
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

/var/log/syslog:Nov 27 11:11:01 eve-desk CRON[5204]: (root) CMD (eve /opt/mcserver/start.sh)
grep: /var/log/btmp: Permission denied …
Run Code Online (Sandbox Code Playgroud)

linux permissions ubuntu crontab minecraft

5
推荐指数
0
解决办法
2万
查看次数

crontab 关闭命令永远不会运行

据我所知,我正在做我被告知的一切。

命令行中的命令“shutdown -P now”正是我想要的——立即关闭计算机。但使用该命令作为 cron 作业永远不会发生。

我只是希望它在周一到周五晚上 8:30 关闭,然后在晚上 9:30 和晚上 10:30 再次关闭。这就是我所做的;

我输入“crontab -e”,并将其添加到文件底部:

30 20,21,22 * * 1-5 shutdown -P now
Run Code Online (Sandbox Code Playgroud)

我按 CTRL+O 来“保存”它,然后按 CTRL+X 退出。我在提示符下收到“crontab:安装新的 crontab”消息。

但到了晚上8点30分,还没有关机。晚上 9:30 或晚上 10:30 也不会。


编辑:处理此处提供的列表; CronJob 未运行

我停在“测试 cron 正在工作”处。我输入命令

* * * * * /bin/echo "cron works" >> /tmp/file
Run Code Online (Sandbox Code Playgroud)

我得到了错误

Apps: command not found
Run Code Online (Sandbox Code Playgroud)

在 Google 中搜索此错误不会出现任何相关内容。

另外,我终于能够看到(感谢链接)在哪里获取消息日志输出 - 我在 Linux Mint 中(应该提到这一点),所以我需要 Ubuntu 方式来查找日志输出。关闭命令似乎已运行,唯一的“错误”消息是“未安装 MTA”,这(根据我刚刚读到的)仅用于通过电子邮件发送输出。否则似乎没有任何明显的错误消息......有人能理解这一点吗?

domarius@Domarius-LinuxMint ~ $ grep CRON /var/log/syslog
Aug  3 08:17:01 Domarius-LinuxMint CRON[3259]: (root) CMD …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu cron linux-mint

5
推荐指数
1
解决办法
1万
查看次数

Cron python脚本没有执行

我已经阅读了几篇文章,但我找不到帮助.

我有一个使用smtplib发送邮件的python脚本.它从命令行调用时有效.

我有#!/usr/bin/python第一行,可以使用/home/pi/ipsender.py和运行它python /home/pi/ipsender.py.

我的crontab是*/1 * * * * /home/pi/ipsender.py,但我自己也尝试*/1 * * * * python /home/pi/ipsender.py*/1 * * * * /usr/bin/python /home/pi/ipsender.py.

这样做which python,我得到/usr/bin/pyhton和命令行我可以导入和使用的smtplib就好运行蟒蛇.

/var/log/syslog我得到:

Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3764]: (pi) CMD (python /home/pi/ipsender.py)
Nov 27 22:57:01 raspberrypi /USR/SBIN/CRON[3763]: (CRON) info (No MTA installed, discarding output)
Run Code Online (Sandbox Code Playgroud)

我猜测没有MTA ......只是关于Cron没有发送关于它正在做什么的电子邮件,或者不是吗?

我该如何运行这个脚本.

[编辑]

脚本的权限是

-rwxr-xr-x 1 pi   pi       551 Nov 27 22:37 ipsender.py
Run Code Online (Sandbox Code Playgroud)

[Edit2]使用来自D Read的提示我得到以下日志 …

python cron crontab smtplib

4
推荐指数
1
解决办法
8142
查看次数

用于生成 Go Access 报告的 Cron 作业不起作用

在我的根 crontab ( sudo crontab -e) 中,我有这个工作来生成 Go Access 日志报告:

* * * * * goaccess /var/log/nginx/access.log -o /home/me/some/path/report.html
Run Code Online (Sandbox Code Playgroud)

它工作得很好。我还有这项工作来生成一份跨越多天的报告:

* * * * * sudo zcat -f /var/log/nginx/access.log* | goaccess -o /home/me/some/path/bigger_report.html
Run Code Online (Sandbox Code Playgroud)

Cron 说它运行,但实际上似乎没有运行。我环顾四周并尝试了很多事情(包括遵循此处的列表 - /sf/answers/1592105231/),但仍然无法运行此作业。如果我自己运行该命令,它会按预期生成文件。我还尝试了管道之前的部分,输出到 txt 文件并且有效。所以我怀疑这是与 Go Access 的一些交互。

当我启用 cron 日志记录时,该作业运行时会显示以下内容:

(root) CMD (sudo zcat -f /var/log/nginx/access.log* | goaccess -o /home/me/some/path/bigger_report.html)
Run Code Online (Sandbox Code Playgroud)

有什么指点吗?谢谢!

cron zcat goaccess

4
推荐指数
1
解决办法
1359
查看次数

当前工作目录究竟是什么?

我的书说:

在您的计算机上运行的每个程序都有一个当前工作目录或 cwd。任何不以根文件夹开头的文件名或路径都假定在当前工作目录下

因为我在 OSX 上,所以我的根文件夹是 /。当我在os.getcwd()Python shell 中输入时,我得到/Users/apple/Documents. 为什么我的 cwd 中出现 Documents 文件夹?是说 Python 正在使用 Documents 文件夹吗?没有任何以/( 根文件夹 )开头的指向 Python 的路径吗?另外,每个程序都有不同的 cwd 吗?

python macos python-3.x

3
推荐指数
3
解决办法
1万
查看次数

从 cronjob 运行 bash 脚本失败并显示“没有这样的文件或目录”

我正在尝试运行以下 bash 脚本,该脚本在激活 conda 环境后运行 Python 程序。

发送.bash

#!/bin/bash
source activate manage_oam_users
python ~/path/to/script/send.py
source deactivate
Run Code Online (Sandbox Code Playgroud)

定时任务表

30 * * * * source /path/to/script/send.bash
Run Code Online (Sandbox Code Playgroud)

尽管运行source send.bash正常,但我从 cron 收到以下错误。我也试过使用bash send.bashwhich 在手动运行时工作正常,但从 cron 运行时会导致相同的错误。

#!/bin/bash
source activate manage_oam_users
python ~/path/to/script/send.py
source deactivate
Run Code Online (Sandbox Code Playgroud)

python bash shell cron anaconda

1
推荐指数
1
解决办法
1813
查看次数