반응형
원격 git repo에서 pull을 자동으로 받아오도록 하고 싶다. ㅎㅎ
매번 서버에 가서 pull 을 하기가 귀찮다.
여러가지 방법이 있지만 리눅스의 cron job 을 이용한 방법이다.
우선 sell script를 작성한다.
vi auto_pull.sh를 아래와 같이 작성한다.
#!/bin/bash
echo '---cron 실행---'
cd /home/user/project
git fetch origin dev
git pull origin dev
lastCommit=$(cat /home/user/last-commit.info)
current=$(git rev-parse origin)
if [[ $current != $lastCommit ]];
then
echo '---커밋변경 배포절차 실행---'
echo '---client build---'
cd ./client
sudo npm i
sudo npm run build
sudo cp -r dist/* /var/www/html/
sudo service nginx restart
echo '---server build---'
cd ../server
sudo npm i
sudo npm run build
echo '---pm2 reload account---'
sudo pm2 reload all
# 기존 커밋 덮어쓰기
echo '---update lastCommit.info---'
echo $current > /home/user/last-commit.info
fi
crontab -e 클론잡에 추가를 한다.
*/5 * * * * /home/user/auto_pull.sh >> /home/user/auto_pull.sh.log 2>&1
5분마다 실행이 되어서 자동으로 원격 git repo 에서 pull을 땡겨온다. ^^
root crontab 에서 일반 계정의 pull 을 실행하고자 하면
su - user(일반계정) -c "실행 파일" 이렇게 하면 된다.
*/5 * * * * su - user -c /home/user/auto_pull.sh >> /home/user/auto_pull.sh.log 2>&1
다음에는 github의 action을 이용하는 방법을 알아봐야겠다.
반응형
'서버 Server' 카테고리의 다른 글
Centos7 에서 git 설치, 업그레이드 (0) | 2024.05.31 |
---|---|
[Linux] Red Hat , CentOS 버전 확인 방법 / 리눅스 OS 버전 확인 (0) | 2024.05.31 |
윈도우 심볼릭 링크 만들기 (1) | 2023.10.10 |
Windows Server 2022 Standard FTP 서버 설정 방법 (0) | 2023.08.30 |
shell script에서 비밀번호 입력 여부 없이 scp 사용 하는 법 (0) | 2016.10.11 |