본문 바로가기

예제46

linux wget 을 사용한 간단한 web server alive check 예제와 공유 wget 을 사용한 간단한 web server alive check 이번 wget 을 사용한 alive check 의 대상으로 google.com 을 써본다. wget --timeout=1 --tries=1 --spider http://google.com 2>&1 | grep -c '200 OK' wget 옵션을 살펴보자. --timeout=1 타임아웃을 지정한다. 응답까지 1초만 대기한다. --tries=1 시도횟수를 지정한다. 1회만 시도한다. --spider http://google.com 대상을 다운로드하지 않고 체크만 한다. 대상 URL 의 상태를 체크한다. | grep 을 제외한 명령문의 결과부터 확인하자. wget --timeout=1 --tries=1 --spider http://googl.. 2021. 12. 22.
golang/go언어 프로그램의 구조 설명과 예제 golang/go언어 프로그램의 구조 go의 구조를 이해할 수 있도록 작은 프로그램을 하나 짜보았다. package main import "fmt" func add(a, b int) int { return a + b } var a, b int = 1, 2 func main() { result := add(a, b) fmt.Printf("Result=%d = add(%d + %d)", result, a, b) } 문장 구성의 특이사항으로 line 끝에 ;(semicolon)을 사용하지 않는다. 이는 line의 끝을 알릴 때 사용하지 않고 line의 구분을 나타낼 때 사용하며 go formatter 가 자동으로 정렬해준다. ex) var a = 1 int ; var name = "test" string → .. 2021. 12. 22.
[C/C++] C언어 main 함수 전/후에 함수를 실행 하는 방법 C언어 main 함수 전/후에 함수를 실행 하는 방법 10년 전쯤에 이런 질문을 받은 적이 있다. C언어에서 main 함수 전/후에 뭔가 print를 찍는다거나 함수 등을 실행하는 행위를 할 수 있냐고. 나는 안될거다고 얘기했다. C의 entry function 이 main이라 stack의 시작과 끝은 main 함수이기 때문이라 생각하기 때문이다. 근데 물어보신 분은 맞는지 틀리는지 대답을 해주지 않으셨고 어느날 불현듯 그 질문이 생각나서 찾다 보니 가능하다는 글을 보아 갈무리를 하였다. 갈무리 역시 6년 전이지만 정리하는 습관을 기르기 위해 남겨본다. 출처와 내용은 다음과 같다. http://www.geeksforgeeks.org/functions-that-are-executed-before-and-a.. 2021. 12. 21.
grep / linux, 사용법, 설명, 옵션, 정규표현식, 예제 grep(그렙, g/re/p) - 텍스트 검색 기능을 가진 명령어 1. 사용법 grep [ -E | -F ] [ -i ] [ -h ] [ -H ] [ -L ] [ -r | -R ] [ -s ][ -u ] [ -v ] [ -w ] [ -x ] [ -y ] [ [ [ -b ] [ -n ] ] | [ -c | -l | -q ] ] [ -p [ Separator ] ] { [ -e PatternList ... ] [ -f PatternFile ... ] | PatternList ... } File ... ] 2. 설명 grep(Globally find Regular-Expression and Print) 은 입력 파일을 줄단위로 읽으면서 PATTERN과 일치하는 문자열이 있는지 확인해서 출력한다. 3. 옵션 -.. 2020. 3. 30.
mysql DB 생성 간단 정리 / 생성, 권한, 접근, 확인, 예제 mysql DB 생성 간단 정리 #1. DB 생성 및 계정 생성 use mysql; create database DB명; 또는 insert into db (host, db, user, select_priv, insert_priv, update_priv, delete_priv, create_priv, drop_priv, grant_priv, references_priv, index_priv, alter_priv) values ('%','DB명','사용자명', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' ); #2. DB 계정 생성 insert into user (host, user, password) values('%', '사용자ID', password('비밀번호')); flus.. 2020. 3. 30.
컴파일 속도 최적화 / make option, 설명, 예제 컴파일 속도 최적화 make -j 을 통해 컴파일을 병렬 진행 할 수 있다. 이는 물리 프로세서(CPU core) 갯수가 아닌 가용한 스레드 갯수만큼 옵션으로 지정할 수 있다. 뭐 예를 들자면 intel I5 4core 하이퍼스레드 4 라면 총 8개의 스레드를 활용 가능 하다는 것. 리눅스 배포판 마다 다르지만, # cat /proc/cpuinfo | grep cores 명령을 통해 사용가능한 스레드 갯수를 알 수 있다. 즉 make 컴파일을 조금 더 빠르게 하고 싶다면, # make -j 4 이런식으로 스레드 코어를 지정해주는 것이 좋을 것이다. 독립적인 빌드 환경에서는 모르겠지만 SSL이라던가 ALSA 같은 무거운 라이브러리를 사용했을 때는 체감속도가 많이 차이 난다. 2020. 3. 30.
리눅스 파일 내 텍스트 찾아 바꾸기 설명과 예제 리눅스 파일 내 텍스트 찾아 바꾸기 리눅스로 작업을 하다보면 높은 확률로 파일 내의 텍스트를 변경할 경우가 생긴다. 그것도 무척 단조롭고 많은 파일을 대상으로.. 예를 들자면 소스 코드 내에 fixed 한 소켓 포트 번호라던가 절대 경로 수정 같은 일.. 이럴때 find 와 sed를 조합하여 파일 내 텍스트를 바꿀 수 있다. # 기호 의미 : 필수 [] : 옵션 # 명령어 find [-type f] -exec sed -i 's///g' {} + # 사용 예 find /home/user -type f -exec sed -i 's/5555/0000/g' {} + - /home/user 디렉토리 내에 모든 파일을 대상으로 파일 내 텍스트 5555를 0000으로 치환 함을 의미. - find 명령어와 sed 명.. 2020. 3. 30.
바이트 오더 / MSB/LSB, first/last 바이트, 설명, 예제 바이트 오더, MSB/LSB, first/last 바이트 1. MSB와 LSB (Most Significant Bit / Least Significant Bit) - 결론 부터 말하자면 이 둘은 바이트 오더와는 전혀 관련이 없다. 단순히 비트의 순서를 따지기 위해 처음이냐, 마지막이냐를 나누는 위치 일 뿐이다. (MSB) 01010101 (LSB) (MSB) 0x12345678 (LSB) 일 뿐이다. 즉 MSB first 인 시스템은 12 34 56 78 이렇게 진행될 것이고 LSB first인 시스템은 78 56 34 12 이렇게 진행될 것이다. 2. 메모리 순서 - 일반적으로 배열을 선언한 후 메모리 위치를 찍어보면 다음과 같다. 즉 메모리가 증가하는 방향을 -----------------------.. 2015. 12. 17.