728x90
스크립트로 크론 작업을 추가하는 방법
Crontab 작업 등록
- 환경 변수 CRON_JOB에 크론 작업을 정의
CRON_JOB="* * * * * php /apps/artisan schedule:run >> /dev/null 2>&1"
- www-data 사용자의 크론 테이블에 추가
echo "$CRON_JOB" | sudo crontab -u www-data -
- www-data 사용자의 크론 테이블 조회
crontab -u www-data -l
스크립트로 크론 작업을 추가
vim scripts.sh
#!/bin/bash
CRON_JOB="* * * * * php /apps/artisan schedule:run >> /dev/null 2>&1"
CRON_FILE="/etc/cron.d/my_cron_job"
# 작업이 이미 있는지 확인
if grep -qF "$CRON_JOB" "$CRON_FILE"; then
echo "Cron job already exists."
else
echo "$CRON_JOB" | sudo tee -a "$CRON_FILE" >/dev/null
echo "Cron job added successfully."
fi
크론 파일(/etc/cron.d/my_cron_job)에 작업이 이미 있는지 확인하고 없다면 추가합니다.
728x90
sh -c 명령어
"sh -c" 명령어는 쉘에서 명령어 문자열을 실행하는 데 사용됩니다.
sh -c "명령어"
sh -c 'echo "Hello, World!"'
sudo -u 명령어
"sudo -u" 명령어는 특정 사용자 권한으로 명령을 실행하는 데 사용됩니다.
- 기본 사용법
sudo -u [사용자] [실행할 명령]
- [사용자]에는 실행하려는 명령을 실행할 사용자의 이름이나 UID(사용자 식별자)를 지정합니다.
- [실행할 명령]에는 지정된 사용자의 권한으로 실행할 명령어나 스크립트를 입력합니다.
nginx 사용자로 /usr/sbin/nginx 명령을 실행
sudo -u nginx /usr/sbin/nginx
현재 사용자의 권한으로 sudo를 사용하여 nginx 사용자의 권한으로 /usr/sbin/nginx를 실행합니다.
sh -c 명령어는 쉘을 실행하고 해당 쉘에 대한 명령을 실행하는 역할을 합니다. sudo -u nginx /path/to/your/script.sh는 nginx 사용자의 권한으로 지정된 스크립트를 실행합니다.
sh -c "sudo -u nginx /path/to/your/script.sh"
- sh -c : 쉘을 실행하는 명령어입니다.
- "sudo -u nginx /path/to/your/script.sh" : 쉘에 전달되는 명령어로 sudo -u nginx /path/to/your/script.sh를 실행합니다.
- sudo -u nginx: 지정된 사용자 nginx의 권한으로 실행합니다.
- /path/to/your/script.sh: 실행할 스크립트의 경로입니다.
이 명령어는 쉘을 실행하여 sudo -u nginx로 지정된 사용자 권한으로 스크립트를 실행하는 것이 목적입니다.
728x90
'리눅스' 카테고리의 다른 글
PHP 8.1에서 MongoDB 확장 모듈을 업그레이드하는 방법 (0) | 2023.12.19 |
---|---|
macOS에서 OpenJDK를 사용하여 JDK 17을 설치하는 방법 (0) | 2023.12.18 |
AWS CLI를 사용하여 EC2 리소스의 태그를 확인, 추가 및 삭제하는 방법 (0) | 2023.12.06 |
우분투에서 node-exporter 설치하는 방법 (0) | 2023.12.05 |
Telegraf 에이전트 설치(Telegraf data collector) (0) | 2023.12.05 |