crontab定时任务执行linux top命令不成功怎么办?

哈哈,这个需求听起来有点像在谈论自动化运维场景。
我之前在论坛上看到过很多类似的讨论,我会根据您的要求尝试给您一个基本的想法。

首先,您需要创建一个 shell 脚本来处理您提到的文件路径。
假设您的文件路径是 /cd/unibss/pkgchc2 /puchc01 /psofang/top-n1 |top-h|head-n8 >top2 .txt,以下是一个简单的脚本示例:
bash !/bin/bash
指定文件路径 FILE_PATH="/cd/unibss/pkgchc2 /puchc01 /psofang/top-n1 |top-h|head-n8 >top2 .txt"
执行您需要的操作,例如复制、移动、处理文件等。
这只是打印文件的内容 echo "当前处理文件:$FILE_PATH" cat $FILE_PATH
可能还有其他操作...
然后需要将此脚本保存到特定路径,例如/sh/abc/edf/xxx.sh。
请记住授予执行脚本的权限:
bash chmod +x /sh/abc/edf/xxx.sh
然后您可以在 crontab 中设置计划任务。
打开 crontab 编辑器:
bash crontab -e
然后添加一行包含计划任务的内容,例如每 5 分钟运行一次脚本:
0-5 9 /5 /sh/abc/edf/xxx.sh
这里的意思是 /sh/abc/edf/xxx.sh 脚本在每分钟 (0-5 9 ) 的每一秒、每小时的每一分钟 ()、每天的每小时 ()、每月的每一天 () 和每周的每一天 () 运行。

当然,您可以根据实际情况调整具体的时间间隔和执行频率。

这是一个基本流程,具体实现可以根据自己的实际需要进行更改。
希望这有帮助!

Linux 使用crontab定时执行脚本,但是脚本内本该生成的临时数据文件全部没有生成

说实话,你的调查思路很明确。
我之前也遇到过类似的情况,定时任务的免登录模式导致了环境问题。
有趣的是,使用 sh -x 重定向日志是一个好习惯。
至少你可以看到命令是如何一一执行的。

我记得你用过 Bash,对吧?非登录和登录 shell 环境变量之间必须存在差异。
我解决了一次,发现$PATH变量缺少特定路径,导致找不到mkdir命令。
我不记得具体是什么时候了。
我记得数据是X年3 月的实验的,但我建议你查一下。

有一个细节需要注意:在阅读日志时,要特别注意mkdir命令执行前后的输出。
如果脚本中其他命令都没问题,但是mkdir直接卡住了,那基本就是权限或者路径问题了。
上次遇到权限问题,发现定时任务用户对目标目录没有写权限。
虽然当时不明白为什么系统允许定时任务执行其他命令,但是忽略了这件事。

还有一点很容易被忽视:在无登录的 shell 下,某些环境变量的默认值可能与你期望的不同。
例如$HOME路径,有些系统默认值可能不完整。
您可以添加 echo $HOME >> 日志文件来查看输出是否正确。

说实话,有点极端,但还是建议大家在脚本中的所有命令中添加 echo run 前缀,这样日志可以更直观。
这是我在调试脚本时所做的。
虽然麻烦一点,但总比大海捞针好。
你尝试一下吗?

定时重启 tomcat 脚本加入 crontab 后不执行的解决方法

这就是坑。
缺少环境变量是定时任务不执行的根本原因。

不信,直接使用脚本时别忘了加载环境变量。

不要这样做,使用完整的路径和完整的步骤来执行命令,并让脚本有执行权限。