이 블로그는 더 이상 업데이트되지 않습니다.

최신 내용을 확인하시려면 여기를 클릭해주세요.

Linux (3)


Linux의 time과 Windows의 timethis

프로그래밍을 하다 보면, 자신이 작성한 프로그램을 실행하는데 걸리는 시간을 알고 싶을 때가 있다.

각 언어별로 어찌저찌 함수든 메서드든 추가해서 소요시간을 출력하도록 프로그래밍을 할 수 있겠지만, 배보다 배꼽이 더 커지기도 하고 언어마다 그 방법들을 모두 따로따로 적용한다는 것은 고역이다.

그래서인지, linux에서는 기본적으로 명령의 실행 시간을 출력하는 명령이 내장되어 있다. 바로 time이라고 하는 명령인데, 그냥 “time [원하는 명령]” 만 입력하면 실행시간이 출력된다.

그럼 Windows는 어떨까?

안타깝게도 Windows에서는 기본 명령으로 실행 시간을 출력해주는 명령은 존재하지 않는 듯 하였다. 그러나 Windows 2000 Resource Kit에 포함되어 있는 timethis가 이 역할을 대신할 수 있다.

어째서인지 MS에서 이 프로그램을 다운받을 수 있는 경로를 찾지 못했으나, 어떤 친절한 분께서 거의 완벽히 같은 기능을 하는 프로그램을 만들어 제공하고 있었다(http://blog.topfivesoftware.com/2013/03/timethis-utility-for-windows-get.html).

MS에서 찾을 수 있는 다운로드 링크는 다음과 같다.
(http://support.microsoft.com/kb/927229)

혹은 아래의 링크로 직접 다운받을 수 있다.
(timethis.zip)

압축을 풀어 WindowsSystem32 에 이름을 timethis.exe로 바꾸어 넣어주면 명령 프롬프트에서 바로 실행할 수 있다.




PPTP VPN 서버

간단하게 우분투를 VPN 서버로 만드는 방법을 알아보자.
PPTP로 만들면 windows 환경에서 따로 클라이언트 프로그램이 없어도 쉽게 연결할 수 있다.

설치

$ sudo apt-get install -y pptpd

local / remote ip 설정

/etc/pptpd.conf 파일 최하단에 다음을 추가한다.

locapip 192.168.13.1
remoteip 192.168.13.100-200

DNS 설정

/etc/ppp/pptpd-options 파일에서 ms-dns 항목을 주석을 풀고 수정한다.

ms-dns 8.8.8.8
ms-dns 8.8.4.4

사용자 추가

/etc/ppp/chap-secrets 파일 내용을 수정한다.
ID * Password * 순서로 사용자를 한명씩 추가하면 된다.

# Secrets for authentication using CHAP
# client    server    secret        IP addresses
userId1        *       Password1    *
userId2        *       Password2    *
userId3        *       Password3    *
userId4        *       Password4    *
userId5        *       Password5    *
userId6        *       Password6    *

NAT 설정

사용자가 VPN을 통해 인터넷에 접속하려면 필요하다.
다음 명령어를 실행한다.

$ sudo su
# iptables -t nat -A POSTROUTING -s 192.168.13.0/24 -o eth0 -j MASQUERADE
# iptables-save > /etc/iptables.rules
# exit

그리고, /etc/rc.local 파일에 다음과 같이 추가해준다.

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0” on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# 여기 한 줄을 추가한다.
/sbin/iptables-restore < /etc/iptables.rule

exit 0


IP forwarding 설정

ip 포워딩을 허용하기 위해 커널 파라미터를 수정한다.
/etc/sysctl.conf 파일에서 net.ipv4.ip_forward=1 항목의 주석을 풀어주자.

.
.
.
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1

# Uncomment the next line to enable packet forwarding for IPv4
# 여기 한 줄의 주석을 해제한다.
net.ipv4.ip_forward=1

# Uncomment the next line to enable packet forwarding for IPv6
#  Enabling this option disables Stateless Address Autoconfiguration
#  based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
.
.
.

그 후, 바뀐 설정을 적용하기 위해 reload 해준다.

$ sudo sysctl -p

MTU 설정

네이버나 다음 같은 국내 포털 사이트들을 접속하기 위해 MTU를 수정해준다.
/etc/ppp/ip-up.local 파일에 다음과 같이 추가한다
(파일이 존재하지 않으면 생성해주자.)

ifconfig $1 mtu 1500

만약 위 설정으로 잘 동작하지 않으면 $1 을 ppp0 으로 바꿔보자
그리고 실행 가능하도록 권한을 수정한다.

$ sudo chmod a+x /etc/ppp/ip-up.local 

pptpd 재시작

다음 명령어를 실행한다.

$ sudo service pptpd restart

위의 과정을 거치면 모든 설정이 완료된다.
시스템을 재시작해도 똑같이 적용된다.

* 참고
http://noise1.tistory.com/5
http://blog.riobard.com/2011/11/12/pptp-vpn-on-ubuntu/
http://blog.naver.com/PostView.nhn?blogId=ilinuxer0&logNo=60167759305




Boot Loader 가 망가지면?

http://ubuntuforums.org/showthread.php?t=1769482

우분투를 비롯한 리눅스를 사용하면서 윈도우와 멀티 부팅을 사용한다면, 누구나 한번쯤은 부트로더가 꼬여서 부팅이 안되는 신비한 경험을 했을 것이다.

이때 당신을 도와줄 아주 좋은 친구 Boot-Repair!

우선 우분투 Live Cd 또는 Live USB로 부팅하자.
그리고 터미널을 열고 아래와 같이 입력해준다.

그 후의 일은 심플한 GUI와 함께 하라는 대로 해주면 된다!

좀 더 자세한 설명은 아래 링크에서 확인.
http://www.howopensource.com/2012/05/reinstall-recover-grub-from-ubuntu-12-04-live-cd-usb/
http://ubuntuforums.org/showthread.php?t=1769482
http://deviantcj.tistory.com/493