cronjob 任务抛出脚本

cronjob 任务抛出脚本

我正在尝试编写一个脚本,该脚本将使用 cron 下载、启用和添加任务,然后向计算机添加自动更新和升级任务。

到目前为止我所拥有的是

sudo apt install cron
sudo systemctl enable cron 

直到这里一切都好然后我添加(经过研究,以下命令)

<(crontab -l) <(echo '50 19 * * * sudo apt update -y') | crontab -
<(crontab -l) <(echo '00 20 * * * sudo apt upgrade -y') | crontab -

当我检查文件时crontab -l

我看到脚本确实按照应有的方式编写了任务,但它没有运行(我尝试每分钟运行一次 apt install 以查看其是否正常工作)

50 19 * * 3 root sudo apt update -y但是当我在该文件上使用 nano编写此命令时,/etc/crontab它起作用了

我尝试添加根渗透crontab -e 但仍然不起作用

有什么解决办法吗?

有没有办法添加带有脚本的文本行/etc/crontab? (网上没找到方法)

谢谢大家

答案1

在任何正常的系统上,cron应该可用。因此不需要安装cron和启用via 。systemctl然而,它使您的脚本依赖,systemd而这种依赖不是必需的。

尝试这个:

#!/bin/bash

USER=root
FILE=input.file.cron
# or get it from the command line arguments

crontab -u $USER -l | grep -v '#--$FILE:$USER' > /tmp/cr-$USER
awk '{printf("%-100s  #--$FILE:$USER\n", $$0) }' $FILE >> /tmp/cr-$USER
crontab -u $USER /tmp/cr-$USER
rm -f /tmp/cr-$USER

答案2

您可以通过将编辑器设置为 来在一行中完成此操作ed

printf "a\n50 19 * * * sudo apt update -y\n.\nw\nQ\n" | EDITOR=ed crontab -e

本质上,将一行内容添加到文件中,退出编辑模式,写入并保存。

相关内容