๐ซฅ ๊ฐ์
๋์์ ๋ฐฑ์๋, ํ๋ก ํธ๊ฐ ๊ฐ๋ฐ์๋ฒ์ ๋ฐฐํฌ๋ฅผ ํ์๊ณ , github actions์๋ ๋ฉ์ฉกํ ์ด๋ก์ ๋ถ์ด ๋ ์ ์๋ฒ์๋ ๋ฐฐํฌ๊ฐ ์๋์ค ์์๋ค.
๊ทผ๋ฐ ์์ง ํด๊ฒฐ์ด ๋์ง ์์ ์ฅ?ํ๊ณ codedeploy๋ฅผ ๋ดค๋๋ ์คํจ๊ฐ ๋ ์์๋ค!!!
EC2 ์ ์์ํด์ ํ์ธํด๋ณด๋ ์๋ฒ๋ด์ ๋ก๊ทธ ํ์ผ ์ฉ๋์ด ์ปค์, ์ ๋ก๋ ๋๋ ์์ถ์ด ์ ์๋์๋๊ฒ ๊ฐ์๋ค.
๋ก๊ทธ ํ์ผ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ญ์ ํด์ค์ผํ๋๋ฐ, ์ฌ๋์ด ๋งค๋ฒ ์ ์ํด์ ์ญ์ ํด์ฃผ๋๊ฑด ์ฝ์ง ์์๋ณด์๋ค.
Cronjob์ด ๋ด ์ผ์ ํ๋๋ก ๊ตฌํํด๋ณด์!
๐งCron?
์๋ ๋ด์ฉ์ ๋ณด๊ณ ์ค์๋ฉด ๋ฉ๋๋ค.
https://vanillacreamdonut.tistory.com/366
์ด์ Cron์ด ๋ญ์ง ์๊ณ , ์ด๋ป๊ฒ S3์ ์ฌ๋ฆฌ๋์ง๋ง ์ดํด๋ณด์!
๐์์ ์์
0๏ธโฃ ์ฌ์ ์์ ( ์ฌ๋ฆด ๋ฒํท์ ์์ฑ & ์๊ฒฉ ์ฆ๋ช ์์ )
AWS S3 CLI ๋ช ๋ น์ด๋ฅผ ์ด์ฉํ๋ค.
AWS S3 CLI๋ฅผ ์ด์ฉํ๋ฉด ๊ฐํธํ๊ฒ S3 ๋ฒํท์ ์ ์ดํ๊ณ S3 ์ค๋ธ์ ํธ์ ์ ๊ทผํ ์ ์์ด ํ์ฉ์ฑ์ด ๋์์ง๋ค.
AWS S3 CLI๊ฐ ๋ญ๋ฐ?
AWS Command Line Interface(AWS CLI)๋ ๋ช ๋ น์ค ์ ธ์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ AWS ์๋น์ค์ ์ํธ ์์ฉํ ์ ์๋ ์คํ ์์ค ๋๊ตฌ. ์ต์ํ์ ๊ตฌ์ฑ์ผ๋ก AWS CLI๋ฅผ ์ฌ์ฉํ๋ฉด ํฐ๋ฏธ๋ ํ๋ก๊ทธ๋จ์ ์๋ ๋ช ๋ น ํ๋กฌํํธ์์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ AWS Management Console์์ ์ ๊ณตํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ช ๋ น์ ์คํํ ์ ์๋ค.
๋ค๋ฅธ ๋ถ์ ๋ธ๋ก๊ทธ๋ฅผ ์ฒจ๋ถํ๊ฒ ๋ค! ๋ฒํท์ ์์ฑํด์ฃผ๊ณ , credentials๋ฅผ ์ค์ ํด์ฃผ๋ฉด๋๋ค.
1๏ธโฃ. ์์คํฌ๋ฆฝํธ ์์ฑ
crontab์ ๋ช ๋ น์ด๋ฅผ ๋ฐ๋ก ์์ฑํด๋ ๋์ง๋ง, ๋ด์ฉ์ด ๊ธธ์ด์ง๋ฆฌ ๊ฒฝ์ฐ shell script๋ฅผ ์์ฑํด์ ํ์ผ ๋ด์ฉ์์ ๋ชจ๋ ๋ช ๋ น์ด๋ฅผ ์คํํ๊ฒ ํ ์ ์๋ค.
vi [์ ๋ช
๋ น์ด ํ์ผ์ด๋ฆ].sh
shell script๋ .sh ํ์ฅ์๋ก ๋ ํ์ผ๋ก shell ๋ช ๋ น์ด๋ค์ ๋ชจ์์ ๋ง๋ ๋ฐฐ์น ํ์ผ์ด๋ค. ์์ด ์ฝ์ด์ ์คํํด์ฃผ๋ ํ์ผ์ธ ๊ฒ์ด๋ค.
์ด๋ค shell ๋ก ์คํ์ํฌ์ง ๊ฒฐ์ ํด์ฃผ๊ธฐ ์ํด์ ์ ์คํฌ๋ฆฝํธ ๋งจ ์์ ์ ์ธํด์ค์ผํ๋ค. ๋๋ bash ์๋ก ์์ฑํ๊ฒ ๋ค.
#!/bin/bash
# ๋ณ์ ์ค์
DATE=`date +%Y-%m-%d%H%M%S`
LOG_FILE="/home/ec2-user/[ํ๋ก์ ํธ ๊ฒฝ๋ก]/[๋ก๊ทธํ์ผ ๋ช
]"
BACKUP_FILE="$DATE.log"
#s3๋ฒํท์ผ๋ก ๋ณต์ฌํ๊ธฐ
aws s3 cp $LOG_FILE s3://[์
๋ก๋ํ ๋ฒํท ์ด๋ฆ/(๊ฒฝ๋ก)/log]/$BACKUP_FILE
#ํ์ผ ์ญ์
rm $LOG_FILE
DATE : ์ค๋ ๋ ์ง๋ก ํ์ผ์ด๋ฆ์ ๋ง๋ค๊ธฐ ์ํด DATE ๋ณ์๋ฅผ ์ค์ ํด์ฃผ์๋ค.
LOG_FILE : ์ด๋ค ํ์ผ์ S3์ ์ ๋ก๋ํ ์ง ์ ๋ ๊ฒฝ๋ก๋ฅผ ์์ฑํด์ฃผ์๋ค.
BACKUP_FILE : S3์ ์ ์ฅํ ๋์ ํ์ผ๋ช & ํ์ฅ์ ์ค์
2๏ธโฃ. crontab์ ๋ฑ๋ก
$ crontab -e
์ด๋ค ์ฃผ๊ธฐ๋ก ์ด๋ค ์์คํฌ๋ฆฝํธ๋ฅผ ์ค์ ํด์ค๊ฑด์ง ์์ฑํด์ค๋ค. ๋๋ ๋งค๋ฌ 1์ผ, 15์ผ์ ํ์ผ์ด ์คํ๋๋๋ก ํ์๋ค.
0 0 1,15 * * /home/ec2-user/[์์คํฌ๋ฆฝํธ ๋ช
๋ น์ด ํ์ผ๋ช
].sh
์ด๋ค crontab ์ค์ ๋์ด์๋์ง ํ์ธํ๊ธฐ
$ crontab -l
Cron ์ค๋ฅ ๋ ๊ฒฝ์ฐ
Cron์ด ์์๋ํ์ง ์์ ๊ฒฝ์ฐ, ์๋์ ๊ฐ์ด ์๋ ค์ค๋ค!
์ ์๋ํ๋์ง ํ์ธํ๋ ค๊ณ 1๋ถ๋ง๋ค ํ์ผ ์ญ์ ๋ช ๋ น์ ๋ฃ์ด์คฌ๋๋, ์์คํ ์์ฒด์์ ์๋ฆผ์ ๋ณด๋ด์ค๋ค.
๊ณ์ ๋๋๊ฒ ๋๋ฉด, ์ฉ๋์ ์ฐจ์งํจ์ผ๋ก ๋ณด๊ณ ๋ฐ๋ก ์ญ์ ํด์ค๋ค!
$ cat /dev/null > /var/spool/mail/[root|ec2-user|(์ฌ์ฉ์ ๊ณ์ )]
'Server๐งค > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Linux] ๋ฆฌ๋ ์ค ๋ช ๋ น์ด - ์์ ์ค์ผ์ค๋ง (cron, crontab) (0) | 2023.08.20 |
---|