답변:
다음과 같이 현재 사용자 crontab의 맨 아래 줄을 에코 할 수 있습니다.
#!/bin/bash
line="* * * * * /path/to/command"
(crontab -u userhere -l; echo "$line" ) | crontab -u userhere -
cron
에 변경된 정보를 알려야합니다 .
crontab
그 사용자에 대해 아직 존재하지 않으면 이것이 오류라고 생각합니다 (?)
crontab에서 값을 편집하려면 다음 라인을 따라 무언가를 수행하십시오.
$ crontab -l | sed -e 's/foo/bar/' | crontab -
분명히 변경하려는 줄과 만 일치하도록 대체에주의해야합니다. 그렇지 않으면 모든 foos
것이 bars
(이 예에서) 로 변경됩니다 .
이 방법의 장점은 전체 crontab을 바꾸지 않는다는 것입니다. (슬레지 해머가 아닌 은유적인 족집게)
sed 대신 편집 명령을 사용할 수 있습니다 . 예를 들어, ed 를 사용 하여 다음과 같이 시작하는 라인을 수정하려는 경우 :
2 * * * * /sbin/flitch --days 3,4 > /var/log/flitch.out 2>&1
이 줄이 여러 줄에 있거나 다른 시스템에서 업데이트 할 많은 crontab이 있고 그 줄이 용어가있는 유일한 줄이라고 알고 flitch
있다고 가정하십시오.
다음과 같이 보일 수 있습니다.
$ cat /tmp/edscript
/flitch
s/3/9/
w
q
$ crontab -l > /tmp/out && ed /tmp/out < /tmp/edscript && crontab - < /tmp/out
$ crontab -l
...
2 * * 1 * /sbin/flitch --days 9,4 > /var/log/flitch.out 2>&1
...
지금은 시간의 거의 100 % 인정해야한다 나오지 무엇을 할 것인가 에드 할 것입니다,하지만 그것은 스위스 군용 칼에 여분의 도구를 가지고하는 것이 좋다. ^. ^