
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
. 그러나 이는 필요하지 않은 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
기본적으로 파일에 내용 한 줄을 추가하고 편집 모드를 종료한 후 쓰고 저장합니다.