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
복사