Search

리눅스 서버 재부팅마다 명령어 실행하기

0. Why?

매번 리눅스 서버를 재부팅시킬 때마다 몇가지 작업들을 수행한다.
1.
하드디스크 마운트
2.
docker container 실행
이를 일일히 수동으로 실행하는 것도 귀찮아, 이를 자동화 하고자 한다.

1) crontab 설치하기

sudo apt-get update sudo apt-get install cron
Bash
복사

2) 스크립트 파일 만들기

재부팅 스크립트 파일 생성
sudo vim /boot.sh
Shell
복사
/boot.sh 작성하기
#!/bin/bash # 하드디스크 /code 에 마운트하기 sudo mount /dev/sda /code # docker container 시작하기 docker start container1
Bash
복사
권한 부여하기
sudo chmod +x /boot.sh
Shell
복사

3) crontab 작업 설정

sudo crontab -e #에디터가 열리면 아래 줄을 추가한다. @reboot /boot.sh #crontab 서비스 재시작 후 변경사항 반영 service cron restart # 혹은 service crond restart
Shell
복사
이때 주의할 점은 sudo 없이 crontab -e 를 실행시키게 되면 권한문제가 발생한다.
sudo crontab -e 로 설정하자.

4) 재부팅 후 실행 확인

재부팅
sudo reboot
Shell
복사
작업 확인
less /var/log/syslog | grep CRON
Shell
복사
output
#output ... Dec 30 01:14:00 b3 cron[847]: (CRON) INFO (Running @reboot jobs) Dec 30 01:14:00 b3 CRON[888]: (root) CMD (/boot.sh) Dec 30 01:14:07 b3 CRON[856]: (CRON) info (No MTA installed, discarding output) Dec 30 01:17:01 b3 CRON[2147]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Shell
복사

성공!

References