(..사실 이건 근본적인 해결책이 되지는 않습니다. Blacklist보다는 Whitelist와 같은 방법을 고려해보세요)

언제부턴가 서버의 SSH가 못써먹겠다 싶을 정도로 느려져서 살펴보았더니

apache2 프로세스가 40개-_-정도 있었다.

간단한 해결책으로는 (sudo) service restart apache2를 하면 되는데, 

이건 임시 해결책일 뿐이고...

netstat으로 접속된 IP들을 보고 해킹시도나 스팸 봇들의 IP를 막으면 된다.

(예를 들면 해외 IP에서의 SSH 접속 시도, 그리고 과도한 트래픽을 주는 IP는 모두 막아야하겠죠)

(sudo) netstat --wide --numeric-hosts --program

(sudo) iptables -A INPUT -s 108.62.154.0/24 -j DROP

(sudo) iptables -A INPUT -s 203.146.82.0/24 -j DROP

(sudo) iptables-save

#24는 앞에서부터 24비트가 매치되는 IP, 그러니까 108.62.154.* 을 모두 DROP하겠다는 뜻.

#108.62.*.*을 막으려면 108.62.0.0/16 이라고 하면 됩니다!


(/var 가 꽉 차서 고생하다가 찾은 방법입니다)

일단 로그를 최대한 지워서 어떻게든 gparted 등 파티션 조작 프로그램을 설치하고,

이걸 이용해 지금의 var를 대체할 어떤 파티션을 만듭니다(편의상 이걸 /dev/sdb1이라고 하겠습니다).

그 다음,

(sudo) mkdir /var_exp

대체 디렉토리를 만들고

(sudo) mount /dev/sdb1 /var_exp

새 파티션을 마운트한 뒤

(sudo) cp -aR /var/. /var_exp/

숨김 파일등을 모두 포함해서 복사하고(이걸 간과하면 망해요 아주)

blkid /dev/sdb1

을 이용해 UUID를 알아내서

(sudo) vi fstab

을 통해 fstab에서 현재 /var가 마운트된 라인의 UUID를 아까 알아낸 것으로 대체 후 저장!

이제 재부팅을 하면 되살아난 리눅스를 만날 수 있습니다.

팬 서비스

채점: http://www.acmicpc.net/problem/1416

길이가 2 * K인 티켓이 있는데, 이 티켓이 다음 두 조건중 하나를 만족하면 당첨 티켓이라고 한다:

1. 앞쪽 K자리의 각 자리 수의 합(e.g.123 -> 1+2+3)이 뒤쪽 K자리의 것과 같다.

2. 홀수 번째 인덱스(1, 3, ...)의 각 자리 수의 합과 짝수 번째 인덱스(0, 2, ...)의 각 자리 수의 합이 같다.

티켓 절반의 길이 K와 티켓에 사용되는 숫자 목록이 주어질 때, 당첨 티켓이 몇 가지인지 구하라(modulo 999983).

(생각해보니까.. 엄청 간단한 문제였는데, 너무 단순하게 생각해서 많은 TLE를 겪었다 ㅜㅜ)


Syntax Highlighter를 설치한 뒤(이는 생략한다),

HEAD부분에 다음과 같은 부분을 추가하자(출처 : http://bryan7.tistory.com/14, 다만,.. 많이 고쳤네요).

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>

<script type=text/javascript>

/* Removal of Incorrect Closing Tags */

jQuery.noConflict();

jQuery(document).ready(function(){ // Activated when the page is loaded and ready.

    jQuery("blockquote").each( function() {  //blokquote를 사용한 태그

        var class_attr = jQuery(this).attr('class');

        if (class_attr && class_attr.substr(0,5)=='brush')

        // 그중 클래스명이 brush로 시작하는 것을 찾아 적용

        {

            jQuery(this).find('span').remove();

            var temp = jQuery(this).html(); //  내용 복사

            temp = temp.replace(/&nbsp;/g, "");

            temp = temp.replace(/\n/gi, "");

            temp = temp.replace(/<br \/>/gi, "\n");

            /* 다음 세 줄은 환경 설정 > 기타 설정 > 글쓰기 환경 > 엔터키 설정 > 

           <p>문단 바꿈 (Shift+Enter시 줄 바꿈) 을 선택했을 때 필요한 코드이다. */

            temp = temp.replace(/<BR>/gi, "\n");

            temp = temp.replace(/<P>/gi, "");

            temp = temp.replace(/<\/P>/gi, "\n");

            temp = '<pre class="'+ jQuery(this).attr('class') + '">'+temp+'</pre>'

            //temp = '<script type="syntaxhighlighter" class="'+ jQuery(this).attr('class') + '"><![CDATA['+temp+']]><\/script>'

            jQuery(this).after(temp);

            // 뒤에 새로 작성된 pre 또는 script 태그로 붙인다.

            jQuery(this).remove(); //  기존의 인용태그 삭제

        }

    });

   jQuery("cpp").each( function() {

      var temp = jQuery(this).html(); //  내용 복사

      temp = temp.replace(/</g, "&lt;");

      temp = temp.replace(/>/g, "&gt;");

      temp = temp.replace(/&lt;\/\S+&gt;$/g, "");

      temp = '<pre class="brush: cpp;">'+temp+'</pre>'

      jQuery(this).after(temp);

      jQuery(this).remove();

   });


   SyntaxHighlighter.defaults['toolbar'] = false; // 툴바 안 보기

   SyntaxHighlighter.all();

});

이제 글을 작성할 때에

위의 쌍따옴표 모양 인용구 버튼을 누르고

그 안에 코드를 적은 다음,

HTML모드에서 class를 "brush: cpp;"와 같은식으로 바꿔주면 적용된다.


2013. 07. 11 수정 ─ CPP 코드는 HTML 모드에서 <cpp>코드</cpp>로 직접 넣으면 됩니다 ㅎㅎ

2013. 07. 16 수정 ─ 다만 이렇게 할땐 < 쓸때는 꼭 띄어쓰기가 있어야 정상동작하네요..

안그럼 티스토리 글 에디터 자체에서 태그로 인식해서 코드를 망쳐요

e.g.

i <v[x].size(); --> 망함

i<v[x].size(); --> 망함

i< v[x].size(); --> 괜찮음

i < v[x].size(); --> 괜찮음

'Computer' 카테고리의 다른 글

Linux에서 /var와 같은 디렉토리의 용량이 부족할 때  (0) 2013.11.12
acmicpc.net 1416 - 팬 서비스  (0) 2013.08.10
C언어 기본 - 동적할당  (1) 2013.06.30
SOCKS5 Tunneling by PuTTY  (0) 2013.06.30
TopCoder SRM 579 Div1  (0) 2013.05.19

컴퓨터의 파일들을 뒤지다가 발견했다 ㅋㅋㅋㅋ

친구들이 헤매는걸 보다못해 만든 ppt였던 것 같다.

신입생때라 ppt를 참 안예쁘게 만들었지만 내용은 쓸만하니까

누군가에겐 유용하리라 믿습니다^^

DynAlloc.pdf

'Computer' 카테고리의 다른 글

acmicpc.net 1416 - 팬 서비스  (0) 2013.08.10
Syntax Highlighter를 상당히 편하게 해주는 jQuery Script  (0) 2013.07.08
SOCKS5 Tunneling by PuTTY  (0) 2013.06.30
TopCoder SRM 579 Div1  (0) 2013.05.19
생활코딩  (0) 2013.04.09

(PCLAB 서버의 외부 접속이 막혀서 SFTP를 어떻게 쓸까... 고민한 끝에

cspro를 터널로 이용할 생각을 했다 ㅋㅋ [내 컴퓨터  CSPRO → PCLAB] 이렇게).. 자 이제 방법 공개!

SOCKS5 Tunneling

준비물 : SSH 서버가 동작하는 터널 컴퓨터, SOCKS5 Proxy를 지원하는 애플리케이션, PuTTY

1. PuTTY를 다음과 같이 설정합니다(9090 대신 안 쓰는 포트라면 어떤 것이든 상관 없어요)



2.터널로 사용할 호스트에 로그인 합니다(tunnelhost.com은 그냥 예시일 뿐이에요).

   * 이때, 설정을 저장해놓으면 나중에 쓰기 편하겠죠? :D



3. 클라이언트 프로그램에서 프록시를 설정합니다(예시로는 FileZilla를 선택했어요).



4.이제 그냥 사용하면 됩니다!

  위의 예제(FileZilla)의 경우에는, 터널 컴퓨터에서는 접속할 수 있으나 집의 컴퓨터에서는 접속할 수 없는 FTP 서버여도,

  터널링 상태에서는 바로 접속이 가능합니다(host에 평범하게 로그인해서).


주의) PuTTY를 이용한 방법이므로.. 로그인해놓은 PuTTY 창이 꺼지면 접속이 끊어집니다!

'Computer' 카테고리의 다른 글

Syntax Highlighter를 상당히 편하게 해주는 jQuery Script  (0) 2013.07.08
C언어 기본 - 동적할당  (1) 2013.06.30
TopCoder SRM 579 Div1  (0) 2013.05.19
생활코딩  (0) 2013.04.09
TopCoder SRM 575 Div1  (0) 2013.04.07

'슬픈꿈을 꾸었느냐?'
'아닙니다.'
'무서운 꿈을 꾸었느냐?'
 
'아닙니다. 기쁜꿈을 꾸었습니다.'
'그런데 왜그리 슬피우느냐?'
 
'그건 이루어질 수 없는 꿈이기 때문입니다.'

간만에 꾼 꿈이 정말 너무 행복한 꿈이었는데
아마 이루어질 수 없는 꿈인 것 같다..윽!


'Random' 카테고리의 다른 글

GMail 전달 기능에 대한 불평  (0) 2015.11.03
새 블로그  (0) 2015.08.08
심해의 조각들  (0) 2015.03.03
옛날 생각  (0) 2014.07.27
월욜이 개강이라구요?  (0) 2012.08.23

05. 19. 2013.

아깝다 ㅋㅋ 450짜리도 생각까지 제대로 했는데,

무언가 구현에서 문제가 발생한건지 sysfail ㅜ_ㅜ

어쨌든 오랜만의 성공적인 매치! 레이팅이 1494가 되었다.

이제 다시 옐로로 올라가야지!

250

워드프로세서를 이용해서 vector <string> 에 적은 대로 한 줄씩 출력하고싶다.

(vector의 크기 <= 50, 각각의 길이 <= 50)

그런데 이 워드프로세서는 백스페이스가 없고(...), 버퍼에 한 글자 붙이기,

버퍼를 지금까지 존재했던 모든 버퍼의 상태중 하나로 되돌리기,

그리고 버퍼를 한 줄로 출력하기(단, 버퍼는 비워지지 않는다)

 총 3가지의 기능만 지원한다.

최소한 버튼을 몇 번 눌러야 원하는 출력을 만들 수 있을까?

(처음에 버퍼는 빈 상태이고, 되돌리기시 버튼 2번을 눌러야 하며,

출력시 한 번을 눌러야 하고, 당연히 한 글자 붙이기도 버튼을

한 번 눌러야 한다)

450

총 N ( N <= 50 )개의 가게가 있고, 그 가게들중 0 ~ M - 1 (M <= 16) 번째 가게가

Interesting한데, 그 가게들의 개점/폐점 시간과 구매하는데

걸리는 시간이 주어지고, 가게들간에 존재하는 양방향 도로가

소요 시간과 함께 주어질때, 최대 몇 개의 물건을 구매할 수 있을까?

(단, 시작은 N-1번 도시에서 하고, 물건 구매는

개점 <= (도착시간) <= 폐점 시간에 할 수 있고, 구매하는 시간 동안은

움직일 수 없으며, 한 가게에서는 한 개의 물건만 살 수 있다)

1000

'Computer' 카테고리의 다른 글

C언어 기본 - 동적할당  (1) 2013.06.30
SOCKS5 Tunneling by PuTTY  (0) 2013.06.30
생활코딩  (0) 2013.04.09
TopCoder SRM 575 Div1  (0) 2013.04.07
VIM으로 euc-kr을 utf-8로 바꾸는 방법.  (1) 2013.03.21

이 distribution의 cdf를 구하면 당연히 cdf의 값은 0 ~ 1이다.

이제 uniform random generator의 값으로 나온 값 y에 대해

inverse cdf, 즉 cdf^-1(y)를 구하면 ... ! 바로! 난수가 나온다..


직관적으로 예를 들면, cdf에는 기울기가 매우 큰 부분이 존재하는데,

이 부분에서는 어떤 값을 넣든간에 난수의 값이 거의 비슷하다.


굳굳!


- 재원이형 강의

'Computer' 카테고리의 다른 글

SOCKS5 Tunneling by PuTTY  (0) 2013.06.30
TopCoder SRM 579 Div1  (0) 2013.05.19
TopCoder SRM 575 Div1  (0) 2013.04.07
VIM으로 euc-kr을 utf-8로 바꾸는 방법.  (1) 2013.03.21
TopCoder SRM 571 Div1  (0) 2013.02.20