버전: 우분투 20.04.6 LTS
내 crontab에는 다음이 있습니다.
@reboot /home/<user>/startup.sh
기타 출력:
<user>@eveng-gcp-v3:~$ ls -la | grep start
-rwxr-xr-x 1 root root 154 Dec 3 11:57 startup.sh
<user>@eveng-gcp-v3:~$ pwd
/home/<user>
스크립트:
<user>@eveng-gcp-v3:~$ cat startup.sh
ip address add 192.168.0.1/24 dev pnet9
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o pnet0 -s 192.168.0.0/24 -j MASQUERADE
이 3가지 명령은 정확하며 수동으로 실행할 때 예상대로 작동합니다.
시작 시 실행되는지 어떻게 확인하나요?
답변1
cron 스크립트가 실행될 때 네트워크 인터페이스가 준비되지 않았습니다. 지연:
@reboot sleep [time in seconds] && /home/<user>/startup.sh
답변2
스크립트가 누락되었기 때문에 스크립트를 실행할 수 있을지 의심됩니다."셰르본". #!/bin/sh
(또는 좋아하는 쉘)을 추가하세요.
cron
또한 syslog, OR 의 로그 및 OR root
의 메일함에서 오류 메시지를 확인해야 합니다 .
답변3
문제는 내 사용자의 crontab을 사용하고 있는데 일반 사용자가 @reboot
작업을 실행할 수 없다는 것입니다. 대신 루트의 crontab( )을 사용했는데 sudo crontab -e
예상대로 작동했습니다!
모두 감사합니다!