我尝试运行一个 bash 脚本,该脚本应将 java 进程信息输出到文件。不幸的是,当我将其添加到脚本时,它crontab -e
没有执行。
作为用户,root
该脚本位于 /root/bin
#!/bin/bash
PATH=/bin
DATE=`date +%Y-%m-%d" "%H:%M`
PROCESSINFO=`ps aux | grep java | grep -v grep`
echo "$DATE $PROCESSINFO" >> java.log
这是crontab -e
配置
* * * * * /root/jobs/log-crush-ftp-process.sh
* * * * * printf "test\n"
这printf "test\n"
只是一个测试,但由于输出只会发送到邮件中,因此屏幕上没有结果。我遗漏了什么?
另外,我还有一个关于 Java 进程的问题。由于一切都在运行时环境中运行,是否有命令可以让我获取有关 JVM 内部进程的更多详细信息?
编辑:
我删除了最后一行printf...
,现在我收到了脚本的邮件。但仍然没有输出java.log
。
答案1
对我来说,这是一个非常严重的问题。如果我这样做mail
并查看第一封邮件,1
那么我看到的是消息
/bin/sh: /root/jobs/log-crush-ftp-process.sh: No such file or directory
我一直以为错误是指第一列/bin/sh
,但真正的问题是我将jobs
文件夹重命名为bin
。将 cronjob 更改为
*/1 * * * * /root/bin/log-crush-ftp-process.sh
(每分钟 */1)脚本现在执行。