[07:19] <geumu> 저 질문이 있는데 혹시 질문 올리면 받아주시나요?
[07:19] <geumu> 우분투 초보인데...crontab을 이용해서 screen을 실행하고 싶은데 어떻게 하는지 모르겠어요
[07:20] <Seony> screen을 crontab에서 실행한다는 개념이 잘 이해가 안가네요
[07:20] <geumu> 안녕하세요
[07:20] <Seony> 안녕하세요
[07:20] <geumu> crontab으로 reboot 시 어떤 프로그램을 자동 실행하려고 하는데
[07:21] <geumu> cmd 창이 어떻게 돌아가는지 보고 싶어서 screen -S 1로 스크린을 만들어주고
[07:21] <geumu> 나중에 screen -rx 1으로 어떻게 cmd 창이 돌아가고 있나 확인하고 싶어요
[07:22] <Seony> 음... 확인을 하는 건 안해봤는데, 일단 명령어를 screen의 특정 세션으로 전달하는 옵션이 있으면 가능하겠군요
[07:23] <geumu> 특정 세션으로 전달하는 옵션이요...?
[07:24] <Seony> 예를 들어서 screen 명령으로 여러 개의 세션을 열었다고 가정해야할테니, 원하시는 세션으로 명령어를 전달해서 실행시키는 것이 가능해야할테니깐요...
[07:24] <Seony> 근데 screen에 그런 옵션이 잇는지 좀 봐야겠네요
[07:24] <geumu> 네...
[07:25] <Seony> https://raymii.org/s/snippets/Sending_commands_or_input_to_a_screen_session.html 여기 보니까 잘 나와있네요
[07:25] <Seony> screen -S 세션이름 -p 0 -X screen command
[07:28] <geumu> ㄷㄷ
[07:28] <Seony> 제 경우는 실행 결과가 궁금하면 그냥 실행결과를 텍스트 파일로 리다이렉션 해서 로그 보듯이 해서, 이렇게 특정 세션으로 명령어를 보낸다는 생각은 안해봤네요 ㅎㅎ
[07:28] <geumu> 제가 정말 많이 초보에요....
[07:28] <geumu> 마인크래프트 서버 만드는데 리눅스로 어떻게 돌려 볼 수 있을까 해서
[07:28] <geumu> 배우고 있어요
[07:29] <Seony> 크론탭에서 명령어를 적어놓고 >> filename 이렇게 하시면 filename으로 결과값이 들어가거든요
[07:29] <geumu> 아 그러면 그거 창을 열어서
[07:29] <geumu> 확인하면 되는군요
[07:29] <Seony> 예를 들어서, 0 1 * * * /usr/bin/xxx >> ~/logfile 이렇게 하시면 매일 1시에 /usr/bin/xxx 파일을 실행하고, 결과값을 ~/logfile 에 저장하는 거죠
[07:30] <geumu> 아
[07:30] <geumu> screen -S 1 -p 0 -X screen command 여기 뒤에
[07:30] <geumu> 커맨드를 작성해야하나요?
[07:30] <geumu> 아니면
[07:30] <geumu> screen -S 세션이름 -p 0 -X screen <command>
[07:31] <geumu> 이렇게 해야하나요?
[07:31] <Seony> 세션 이름을 원하시는대로 적어주면 될 거에요
[07:32] <geumu> @reboot /usr/bin/screen -S geumu -p 0 -X srcreen sh /home/toor/start.sh
[07:32] <geumu> 이렇게 하면 될까요?
[07:33] <Seony> 아뇨 크론탭에는 reboot이라는 형식의 문법은 없어요
[07:33] <Seony> 시스템이 새로 부팅되면 실행을 하시고 싶은 거죠?
[07:33] <geumu> 네
[07:34] <Seony> 그럼 그걸 일종의 시작프로그램에 등록을 시켜야하는데요,
[07:34] <Seony> 예전에는 간단했는데, 최근 3-4년 사이에 새로운 시스템이 도입되서 약간 어려워졌거든요.... 일단 그것도 하는 방법에 대한 링크를 드릴게요
[07:34] <geumu> ㅠ
[07:38] <Seony> sudo systemctl enable rc-local 하신다음, sudo nano /etc/systemd/system/rc-local.service 해서 아래의 내용을 적으시구요
[07:38] <Seony> https://www.irccloud.com/pastebin/I2kLQm9t/%2Fetc%2Fsystemd%2Fsystem%2Frc-local.service
[07:38] <Seony> 그런다음, /etc/rc.local 이라는 파일을 열어서 원하시는 명령어를 적으시면, 부팅할 때마다 실행합니다.
[07:40] <Seony> 근데 이렇게 복잡하게 하시기보단, 그냥 구글에서 우분투 서버에서 마인크래프트 서버 운영하는 걸로 검색을 해보시면 매뉴얼들이 많이 나오지 않을까 싶네요
[07:40] <Seony> 블로그라던가 하는 것들요
[07:41] <geumu> ㅠㅠ
[07:41] <geumu> 하나 찾았어요
[07:41] <geumu> https://minecraft.gamepedia.com/Tutorials/Server_startup_script
[07:41] <geumu> 제가 자료 찾는게
[07:41] <geumu> 정말 어려운게
[07:41] <geumu> 자료를 봐도
[07:41] <geumu> 그게 쓸모있는 자료인지
[07:41] <geumu> 판단을 못하는게 지금 문제인거 같아요
[07:42] <Seony> 지금 우분투 버전 몇 설치하셨어요?
[07:42] <geumu> 18.04
[07:42] <geumu> 설치했어요
[07:42] <Seony> 음 그러면 자료를 찾으실 때 우분투 18.04를 기준으로 설명하는 자료들을 보시면 거의 대부분은 쓸모있는 자료가 맞을 거에요
[07:42] <geumu> 네...
[07:42] <Seony> 운영체제 자체는 버전에 따르는 차이가 거의 없는데, 외부 프로그램은 안그렇거든요
[07:49] <Seony> 구글에서 우분투 18.04 마인크래프트 라고 찾으니까 많이 나오긴 하는군요
[07:54] <geumu> 지금
[07:54] <geumu> https://minecraft.gamepedia.com/Tutorials/Server_startup_script
[07:54] <geumu> 이거 함 보구 있어욤 ㅎ
[07:55] <Seony> 아 하긴 유명한 게임서버니 매뉴얼도 잘 되어있겠꾼요
[07:57] <Seony> 저는 왠만한 게임은 많이 해보는데 마인크래프트는 영 취향에 안맞아서... ㅎㅎ
[07:57] <geumu> ㄷㄷ
[07:57] <geumu> https://www.draw.io/#Uhttps%3A%2F%2Fcdn.discordapp.com%2Fattachments%2F357927268623843329%2F675973465068666882%2FDDOS_.xml
[07:57] <geumu> 이게 제 계획이에요
[07:57] <geumu> 번지코드란게 프록시 같은건데
[07:58] <geumu> 앞단에서 프록시가 ddos를 대신 맞아주고
[07:58] <geumu> 뒤에 game 서버는 디도스 안맞게 하는게 목적이에요
[07:58] <Seony> 리버스 프록시군요
[07:58] <Seony> 아 리버스 프록시가 아니구나
[08:00] <geumu> 디도스가 오는 것은
[08:00] <geumu> 감지하는게 어려울거 같아서
[08:00] <geumu> 그냥 트레픽이 많이 증가하면
[08:00] <geumu> ddns 끊는걸 목표로 하고 있어요
[08:00] <Seony> 근데 게임 서버를 운영하시려면 dns를 결국 하나만 운영해야하는 거 아니에요?
[08:01] <geumu> 네네
[08:01] <Seony> cloudflare에서 트래픽을 도식처럼 5대로 분산시켜주는 기능이 있는 거에요?
[08:01] <geumu> 도메인은 1개인데 클라우드 플레어로
[08:01] <geumu> 라운드 로빈인가?
[08:02] <Seony> 라운드 로빈은 순차적으로 돌리는 거에요
[08:02] <geumu> 용어는 잘 모르겠지만 5개의 컴퓨터로 연결해두고
[08:02] <geumu> 유저들이 도메인에 접속하면
[08:02] <geumu> 5개 컴퓨터중 1개로 랜덤으로 들어가게 해놨어요
[08:02] <Seony> 랜덤이 아니라, round-robin이라고 해서 순서대로 돌려요
[08:03] <Seony> 그럼 ddos가 들어오면, 5대 중 하나를 끄면 결국 트래픽이 나머지 4대에 몰리게 되는데 그럼 결국 나머지 4대의 부하가 더 심하게 걸리게 되는 셈이네요
[08:04] <geumu> ㄷㄷ
[08:05] <geumu> 그
[08:05] <geumu> 조언을 구하고 싶어요
[08:05] <geumu> 어떻게 해야할까요...
[08:05] <geumu> 제 생각에는
[08:05] <geumu> 클플이 5개의 번지코드 아이피를 숨겨주니
[08:05] <geumu> 바로 번지코드에 공격을 못하고
[08:06] <geumu> srv 아이피 따는 그거로 따서
[08:06] <geumu> 1개씩 날려야하는데
[08:06] <Seony> 일반적으로 부하를 분산하기 위한 클러스터링을 구축할 때는, 도식 주신 것과 반대로 구축합니다.
[08:06] <geumu> 어떻게 해요?
[08:06] <Seony> 즉, cloudflare의 한 개의 아이피에서만 모든 트래픽을 받고,
[08:06] <Seony> 그 아래 연산을 담당하는 서버를 여러 개 두거든요
[08:07] <Seony> 근데 이 부분은, 사실 공유해주신 것도 그렇지만, 리눅스를 조금 아는 정도로는 부족하고 현직 시스템 엔지니어가 직접 구축해야할 거에요
[08:08] <Seony> 마인크래프트 서버가 어떻게 돌아가는지는 잘 모르겠지만 일반적인 웹사이트는 예를 들어 php라면 nginx - php-fpm의 리버스 프록시를 구축하고,
[08:08] <geumu> 어음...
[08:08] <Seony> 데이터베이스를 클러스터로 묶거든요
[08:08] <geumu> 그그그
[08:09] <geumu> 디도스를 날릴 때 도메인으로 날리면
[08:09]  * Seony 일단 디도스에 대한 대비는 그냥 놔두시고, 사실 디도스는 어느 게임사도 못막아요 ㅎㅎ 
[08:09] <geumu> 5개로 다 분산되나요?
[08:09] <Seony> round-robin이니까, 들어오는 트래픽은 순차적으로 분산시키겠죠
[08:11] <Seony> 제가 볼 땐 디도스 걱정보다는, 부하를 분산시키는 쪽으로 고민을 해보시는 것을 추천해드려요
[08:12] <Seony> 제가 이브온라인 이라는 게임 하는데, 이브온라인도 최근 디도스 때문에 난리였거든요.... 이런 게임사도 디도스는 답이 없을 정도라... ㅎㅎ
[08:17] <geumu> ㅠㅠ
[08:17] <geumu> 저기 혹시 트레픽이 100mbps로 증가하면
[08:17] <geumu> 특정 명령어를 실행하는
[08:17] <geumu> 그런 방법이 있나요?
[09:04] <Seony> 아뇨
[09:04] <Seony> 방법이야 찾으면 있겠지만 그런 프로그램이 만들어져있는 건 아니고, 직접 만들어야되요
[09:30] <geumu> 아아...
[09:30] <geumu> Seony님
[09:30] <geumu> 혹시 디스코드 란거 아시나요?
[09:30] <Seony> 매일 쓰죠 ㅎㅎ
[09:31] <Seony> 위에 말씀드린대로 제가 이브온라인을 하기 때문에 매일 씁니다
[09:31] <geumu> ㄷㄷ
[09:31] <geumu> 저 혹시
[09:31] <geumu> 디스코드 제가 여기에 적어두면
[09:31] <geumu> 저 친추해주실런지요...
[09:31] <geumu> geumu#4606이에요
[09:31] <Seony> 네 친추는 해드리는데, 제 활동 시간대가 안맞으실 거에요
[11:44] <Dry8r3aD> Slack - IRC 연동 테스트중입니다
[23:36] <lexlove_> 안녕하세요
[23:36] <lexlove_> D-50 입니다.^^
 안녕하세요