Bash 파일에서 방화벽을 다시 시작하십시오.

Bash 파일에서 방화벽을 다시 시작하십시오.

주기적으로 방화벽을 재시작해야 하기 때문에 bash 파일을 생성하여 CRON 테이블에 추가했습니다.

터미널에서 다음 명령을 사용하여 방화벽을 다시 시작합니다.

service firewall restart

하지만 내 bash 파일( ) myscript.sh에 다음과 같은 줄이 있는 경우:

#!/bin/sh
service firewall restart

터미널에서 (루트로) 실행하십시오.

sh myscript.sh

방화벽이 다시 시작되지 않습니다.

차이점은 무엇입니까? Bash 파일에서 서비스를 다시 시작하는 방법은 무엇입니까?

편집하다

나는 또한 다음 명령을 시도했습니다.

/etc/init.d/firewall stop
/etc/init.d/firewall start

그리고

/etc/init.d/firewall restart

또한 다음과 같이 파일을 실행해 보았습니다.

/bin/sh myscript.sh

여전히 작동하지 않습니다.

편집하다 내 bash 스크립트는 다음과 같습니다.

#!/bin/sh
if [ some statement ]; then
    /etc/init.d/firewall restart # also tried: eval /etc/init.d/firewall restart
    stat /some/file -c %Y > /root/statfile
    # if I add any statement here it is being executed, so it is not the fault of incorrect if statement
fi

답변1

cron쉘에 임의로 로그인하는 환경과는 다릅니다 . 귀하의 환경에는 방화벽 스크립트에 필요하지 않은 것이 있을 수 있습니다.

을 확인 /var/mail하거나 메일 풀이 무엇이든 시도해 보십시오. Cron은 기본적으로 crontab이 특정 작업을 수행하는 사용자에게 출력을 메일로 보내지만 MTA를 구성하지 않은 경우에는 이 출력이 표시되지 않습니다. 출력 결과가 명확하지 않은 경우 set -x스크립트 상단에 추가하거나 env(인수 없이) 명령을 추가하고 출력을 셸에서 실행할 때 동일한 명령의 출력과 비교하십시오.

다른 모든 방법이 실패하면 출력을 게시하고가득한스크립트(편집하지 마십시오. 모든 것이 괜찮다고 생각한다고 해서 반드시 그런 것은 아니며 정보를 공개하지 않으면 도움을 받을 수 없습니다.)

답변2

너는 무엇을 할 계획이야?some statement

정제

if [ some statement ]; then ...

이건 말이 안 돼

답변3

/etc/init.d/firewall restart대신 이렇게 하면 어떨까요 service firewall restart?

이것이 경로일 수도 있습니다.

실행 가능하게 만드는 것을 잊지 마세요:

chmod +x myscript.sh

답변4

스크립트는 sudo를 사용하여 호출해야 합니다. 또는 sudo를 사용하여 Wheel Administrators 그룹 계정에 다른 사용자를 두는 방법도 있습니다. 이는 모두 사용 중인 배포, 사용 가능한 옵션 및 이를 사용하여 충분한 권한으로 스크립트를 실행할 수 있는 방법에 따라 다릅니다.

sudo -u [username] -S myscript.sh < password_file.txt

파일 권한을 위해 그룹 계정을 사용하는 경우 스크립트 파일(myscript.sh)의 그룹 권한에 포함되어야 하며 그룹이 액세스할 수 있는 디렉터리에 위치해야 합니다. 휠 또는 다른 그룹의 사용자는 -u [usename] 옵션을 사용하는 스크립트를 통해 호출되어야 합니다. 휠 계정을 사용할 때 cron 계정을 사용자로 사용하지 않습니다. 또한 sudo 목록에 사용자를 추가해야 합니다. Wheelset은 보안 위험이 있는 것으로 입증되었기 때문에 일부 배포판에서는 더 이상 사용되지 않습니다. 이 경우 관리 목적으로 그룹을 생성하고 해당 그룹을 사용하여 파일 권한을 얻으십시오.

sudo 목록에 사용자를 추가하는 방법은 다음에서 확인할 수 있습니다.https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos...이 튜토리얼을 가이드로 사용하세요.

또한 스크립트에 stderr 코드를 포함하거나 sdtout을 텍스트 파일로 리디렉션하는 경우 스크립트를 호출할 때 발생하는 문제에 대해 알려줍니다.

sudo를 안전하게 사용하는 방법과 기법은 다양합니다. 이는 실제로 사용자 및/또는 회사 규칙 및 보안 정책과 관련이 있습니다.

관련 정보