Laravel의 라인을 사용하여 Ubuntu에서 예약된 작업을 실행하는 방법

Laravel의 라인을 사용하여 Ubuntu에서 예약된 작업을 실행하는 방법

매일 오후 3시에 실행해서 자동으로 비밀번호를 입력해야 합니다 sudo php artisan backup:run. 작업 스케줄러를 사용하고 .bat 스크립트에서 관리자 권한으로 실행을 설정하여 Windows에서 이 작업을 수행하는 방법을 알고 있습니다.

답변1

이것은~해야 한다Ubuntu 14.04에서는 최신 릴리스와 거의 동일하지만 약간의 차이가 있을 수 있습니다.

작업은 두 부분으로 나뉩니다.

  • sudo비밀번호 없이 작업을 수행하려면 sudoers파일에 사용자를 추가하고 비밀번호가 필요하지 않도록 허용하세요.
  • 작업을 자동으로 실행하려면 를 사용하십시오 cron.

sudoers

다음을 사용하여 sudo 그룹에 사용자를 추가하십시오.

usermod -aG sudo <username>

<username>작업을 실행할 사용자로 변경합니다 .

비밀번호를 입력하지 않으려면 파일을 편집하세요 /etc/sudoers.

visudo

파일 끝에 다음 줄을 추가합니다.

<username>  ALL=(ALL) NOPASSWD:ALL

다시 <username>작업을 실행할 사용자로 변경합니다.

더 나은 접근 방식은 다음과 같이 기본 sudoers 파일을 편집하는 대신 특정 사용자를 위한 새 sudoers 파일을 만드는 것입니다.

echo "<username>  ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username

자세한 내용은 다음을 참조하세요.Ubuntu에서 Sudoers에 사용자를 추가하는 방법.

이 질문도 참조하세요.명령줄을 사용하여 사용자를 새로운 sudoer로 추가하려면 어떻게 해야 합니까?

크론

cron은 매우 강력하며 다양한 옵션이 있습니다. 그러나 작업을 수행하기 위한 기본 필수 사항은 다음과 같습니다.

crontab을 편집하려면 다음을 사용하십시오.

crontab -e

또는 다른 사용자의 경우

crontab -u ostechnix -e

이전에 crontab을 실행한 적이 없다면 처음 실행할 때 편집기를 선택하라는 메시지가 나타날 수 있습니다.

그런 다음 오후 3시 작업에 대해 다음 줄을 추가하십시오.

0 15 * * * <command-to-execute>

따라서 귀하의 경우에는

0 15 * * * sudo php artisan backup:run

저장하고 편집기로 나갑니다. 그런 다음 crontab을 확인하려면 다음을 사용하십시오.

crontab -l

시간을 변경하려면 cron 매뉴얼 페이지에서 필드를 다음과 같이 변경하세요.

       The time and date fields are:

              field          allowed values
              -----          --------------
              minute         0-59
              hour           0-23
              day of month   1-31
              month          1-12 (or names, see below)
              day of week    0-7 (0 or 7 is Sunday, or use names)

       A field may contain an asterisk (*), which always stands for
       "first-last".

에 대한 자세한 내용은 crontab다음을 참조하세요.크론 작업 초보자 가이드, 또는 를 입력하세요 man cron.

이 질문도 참조하세요.Cron 작업을 어떻게 설정하나요?

관련 정보