1140 * * * /bin/bash -c “rm -rf cgu_log/*”
时间: 2024-07-15 13:01:29 浏览: 75
这个命令行是一个Linux或Unix系统中的cron任务表达式,用于设置定期执行的任务。具体来说:
1. `1140 * * *` 是时间部分,代表每天的11点40分执行。这里使用的是分钟、小时、日期(月份中的第几号)和星期(0-7,其中0和7都代表周日)的格式。
2. `/bin/bash` 表示使用bash shell来执行后续命令。
3. `-c` 是用来指定shell应该运行的命令,后面的引号中包含了实际执行的指令:`"rm -rf cgu_log/*"`。
4. `rm -rf` 是删除(remove)文件或目录的强删除命令,`-r` 递归删除,`-f` 强制删除不提示用户确认,这将会清除名为`cgu_log`目录下的所有内容。
所以,这个cron job会在每天的11点40分删除`cgu_log`目录及其下所有的子目录和文件。如果你设置了这个定时任务,每次该时间到达时,都会自动删除这些日志文件。请注意,这样的操作应当谨慎处理,因为一旦删除就无法恢复。如果有备份需求,请在删除前做好备份。
相关问题
如何在linux执行这个定时任务#!/bin/bash user=d5000 pass=Root@123 #lftp -u $user,$pass sftp://10.165.245.223:20022<<EOF ftp -nv 10.165.245.223 20022 <<EOF user d5000 Root@123 passive cd /D5000/ lcd /home/d5000/changchun/tdp/JLdata/D5000/ prompt mput T_DAS* close bye EOF cd /home/d5000/changchun/tdp/JLdata/D5000/ mv T_DAS*e ../bak_files/ cd /home/d5000/changchun/tdp/JLdata/bak_files &&find /home/d5000/changchun/tdp/JLdata/bak_files -type f -name 'T_DAS*e' -mtime +7 |xargs rm -rf ; lcd /home/d5000/changchun/tdp/JLdata/D5000 mput zwbw.log bye EOF cd /home/d5000/changchun/tdp/JLdata/D5000/ mv zwbw.log ../bak_files/ cd /home/d5000/changchun/tdp/JLdata/bak_files &&find /home/d5000/changchun/tdp/JLdata/bak_files -type f -name 'zwbw.log' -mtime +7 |xargs rm -rf ; lcd /home/d5000/changchun/tdp/JLdata/D5000;
您可以将该任务添加到crontab中,以便在指定时间自动执行。
1. 打开终端并输入以下命令来编辑crontab文件:
```
crontab -e
```
2. 在文件末尾添加以下行:
```
0 0 * * * /bin/bash /path/to/your_script.sh
```
这将在每天的0点0分执行“your_script.sh”脚本。请将“/path/to/your_script.sh”替换为脚本的实际路径。
3. 保存并退出文件。
4. 现在,您的定时任务已设置并将在每天的0点0分自动执行。如果您想立即执行任务,请运行以下命令:
```
sudo service cron restart
```
这将重新启动cron服务并立即执行所有定时任务。
5. 您可以使用以下命令查看当前设置的定时任务:
```
crontab -l
```
请注意,您的脚本中的命令需要使用绝对路径,而不是相对路径。例如,“/bin/bash”代替“bash”命令。
17 8 * * * /bin/bash -c ‘rm -rf cgu_log/*’ 如果是2019年不执行不删除操作,否则执行17 8 * * * /bin/bash -c ‘rm -rf cgu_log/*’
这是一个Linux定时任务的cron表达式。具体解释如下:
`17 8 * * *` 表示每天的17点(下午5点)执行这个命令。
`/bin/bash -c 'rm -rf cgu_log/*'` 是实际执行的命令,它会运行`bash` shell,并执行清除`cgu_log`目录下所有文件和子目录的`rm -rf`命令。
如果要在2019年之外的情况下才执行这个删除操作,在crontab配置中直接添加这个规则可能会导致每天17点都尝试删除,除非另有特殊设置。为了满足你的需求,可以在crontab中增加一个条件判断,例如使用if语句检查当前日期是否为2019年。然而,由于cron本身不支持复杂的条件判断,这通常需要外部脚本的帮助,比如写一个shell脚本或者使用一个能够处理复杂逻辑的语言(如Python)编写计划任务。
一个简化版的解决方案可能是创建一个bash脚本,内容如下(假设该脚本名为`check_and_delete.sh`):
```bash
#!/bin/bash
current_year=$(date +%Y)
if [ "$current_year" != "2019" ]; then
rm -rf /path/to/cgu_log/*
fi
```
然后将上述脚本添加到cron中,表达式改为:
```bash
17 8 * * * /path/to/check_and_delete.sh
```
这样只有当当前年份不是2019时,才会执行`rm -rf`操作。如果你想在crontab中直接包含复杂的逻辑,可能需要借助其他方法,但上述脚本提供了一个简单实用的解决方案。
阅读全文