github 커밋 자동화 프로그램
github 커밋 자동화 프로그램
Summary 구글 클라우드를 이용한 커밋 자동화 API 제작 방법을 설명하며, 무료 계정 생성, 서버 구축, git 설치 및 자동 커밋 스크립트 작성, 스케줄링 방법을 포함합니다. 또한, 토큰 인증 방식을 통해 깃허브에 로그인하고, 특정 주기마다 파일을 생성하여 자동으로 커밋하는 방법도 안내합니다.
끝났으니까 컴터 꺼버리고 잠이나 주무십쇼.
이제 하루1커밋을 깜빡해도 좋습니다.
메모
Q. Crantab을 수정해도 초기화가 안됩니다
🔗 https://ciksiti.com/ko/chapters/3128-troubleshooting-crontab-not-running–linux-hint
🔗 https://shlee0882.tistory.com/270
Q. cd /path/to/your/repo 에는 어떤 경로를 넣어야 합니까?
**/path/to/your/repo**
는 당신이 클론한 레포지토리의 경로를 입력하시면 됩니다. 예를 들어, 만약 당신이 레포지토리를 **/home/user/my-repo**
경로에 클론했다면, **/path/to/your/repo**
대신 **/home/user/my-repo **
를 입력하시면 됩니다.
Q. 6시간마다 commit.SH를 한번씩 자동커밋하는 방법은 무엇일까요?
crontab을 이용하면 매 시간마다 스크립트 파일을 실행할 수 있습니다. 6시간마다 실행하려면 다음과 같이 설정하면 됩니다.
|
|
위 설정은 매 시간 0분에 스크립트 파일을 실행하며, 실행 주기는 6시간입니다
Q. git push -f origin main git add . git commit -m “edit on SSH” 를 순차적으로 입력했습니다. 하지만 다음과 같은 에러 메시지를 받았습니다. On branch main Your branch is up to date with ‘origin/main’. nothing to commit, working tree clean 어떻게 해결해야하나요?
에러 메시지를 보면 “nothing to commit, working tree clean"이라는 메시지가 나타납니다. 이는 현재 로컬 저장소의 변경 사항이 없다는 것을 의미합니다.
따라서, **git add .**
명령어를 실행하여 변경 사항을 추가한 후, **git commit -m "edit on SSH"**
명령어를 실행하여 변경 사항을 커밋해야 합니다.
만약 이전에 이미 커밋을 했다면, **git push -f origin main**
명령어를 실행하여 원격 저장소에 변경 사항을 강제로 push할 수 있습니다.
Q. 간단하게 vi를 이용해 text.txt 를 추가시켰습니다. 이제 이 변경사항을 GCD SSH에서 push하고 commit하는 일련의 과정을 정리해 주십시오.
변경 사항을 추가한 후, 다음과 같은 명령어를 실행하여 변경 사항을 커밋하고 원격 저장소에 push할 수 있습니다.
|
|
Q. 단순 코드 실행으로 일정 주기 파일 생성 스크립트
|
|
- nano 편집기가 실행됩니다.
- 다음과 같은 스크립트를 작성합니다.
|
|
이 스크립트는 while 루프를 사용하여 무한히 실행됩니다. 루프 내에서는 현재 날짜와 시간을 사용하여 파일 이름을 생성하고 touch 명령어를 사용하여 해당 파일을 생성합니다. 그런 다음 sleep 명령어를 사용하여 1시간 동안 대기합니다.
위의 스크립트에서 /path/to/directory/ 부분은 생성하려는 파일이 저장될 디렉토리 경로로 변경해주시면 됩니다.
- Ctrl + X를 눌러서 저장하고 나옵니다.
- 스크립트를 실행합니다.
- 다음 명령어를 입력하여 스크립트를 실행합니다.
|
|
Q. 스크립트가 실행되고 있다는것을 확인하는 방법
스크립트가 실행되고 있는지 확인하는 방법은 다음과 같습니다.
- 터미널에서 다음 명령어를 입력합니다.
|
|
- 실행 중인 스크립트의 PID를 확인합니다.
- 스크립트를 중지하려면 다음 명령어를 입력합니다.
|
|
위의 명령어에서 PID는 실행 중인 스크립트의 PID 번호입니다.
random.sh 라는 이름을 가진 프로세스를 전부 종료하는방법
현재 실행 중인 스크립트가 3개인 것 같습니다. 이 경우에는 다음 명령어를 사용하여 모든 스크립트를 종료할 수 있습니다.
|
|
위의 명령어는 “random.sh"라는 이름을 가진 모든 프로세스를 종료합니다.
이상입니다. 도움이 되었길 바랍니다!
Q. README.md 파일을 자동으로 작성하는 방법
네, 있습니다. 아래와 같이 script.sh 파일을 생성하고 코드를 저장한 후에 **bash script.sh**
명령어를 입력하면 됩니다.
|
|
위 코드에서 **openssl rand -hex 12**
부분이 랜덤한 문자열을 생성하는 부분입니다. 이 부분을 수정하면 원하는 길이와 형태의 랜덤 문자열을 생성할 수 있습니다.
위 코드를 실행하기 전에 **openssl**
이 설치되어 있어야 합니다. 만약 설치되어 있지 않다면 아래 명령어로 설치할 수 있습니다.
아마 설치되어있을겁니다
|
|
위 코드를 실행하기 위해서는 **README.md**
파일이 이미 존재해야 합니다. 만약 존재하지 않는다면 아래 명령어로 파일을 생성할 수 있습니다.
|
|
만약 같은 폴더에 존재한다면 아래와 같이 상대경로로 표기할 수 있습니다.
|
|
여기서 마크업 언어로 줄바꿈까지 넣으려면 코드를 다음과 같이 수정해준다
|
|
#!/bin/bash echo "$(date) - $(openssl rand -hex 5) $(echo -e "<br/>")">> ./README.md
해당 코드를 가진 autoWriteREADME.md
파일을 crontab -e
에서 */5 * * * * /home/thquddnr123/AutoCommit/decreaseGuilty/autoWriteREADME.sh
를 작성해여 5분마다 코드를 실행하려고 합니다. README.md 와 autoWriteREADME.sh 둘 다 chmod +x 로 권한을 준 상태입니다. 하지만 시간이 되어도 README.md가 업데이트되지 않습니다. 하지만 bash autoWriteREADME.sh 로 직접 실행하면 코드는 정상적으로 작동됩니다. 저는 자동으로 5분마다 실행되는 코드를 작성하고싶습니다. 어떻게 해야합니까?
해당 코드가 crontab에서 실행되지 않는 이유는 환경 변수 문제일 가능성이 높습니다. crontab에서는 일반적으로 사용자의 환경 변수를 사용하지 않기 때문입니다. 따라서 해당 스크립트 파일에서 사용하는 환경 변수를 직접 지정해주어야 합니다. 예를 들어, 다음과 같이 스크립트 파일을 수정하시면 됩니다:
|
|
위와 같이 수정하시면 crontab에서도 정상적으로 실행될 것입니다.
💬 댓글
GitHub 계정으로 로그인하여 댓글을 남겨보세요. GitHub 로그인
🔧 댓글 시스템 설정이 필요합니다
GitHub Discussions 기반 댓글 시스템을 활성화하려면:
GISCUS_SETUP_GUIDE.md
파일의 안내를 따라 설정 완료Repository 관리자만 설정할 수 있습니다. 설정이 완료되면 모든 방문자가 댓글을 남길 수 있습니다.