검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Change your Grub options with Grub Customizer

  grub 설정으로 유명한 프로그램인 Grub Customizer의 설치 및 기본 사용법에 대해 소개합니다. 특히 데비안 계열의 경우 grub2의 설정 및 관리가 괴랄하므로 이런 프로그램이 유용합니다. 먼저 터미널을 통해 아래의 절차로 설치를 합니다.
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
  소스를 직접 컴파일하여 설치하는 방법은 이곳을 참조하시기 바랍니다.

  설치가 끝나면 배포판에 따라 메뉴, 대시에서 실행하거나 터미널에서 아래 명령어로 실행합니다.
sudo grub-customizer
  그 후 요구대로 root 패스워드를 입력하면 아래처럼 메인 화면이 나타납니다.(아래는 우분투 13.04에서 실행한 화면)
사용자 삽입 이미지
  일단 메인 화면에서 할 수 있는 것으로는 아래와 같은 것들이 있습니다.
  • 여러 OS에 대한 항목 활성화/비활성화
  • 각 항목의 디폴트 이름 변경
  • 메모리 테스트를 위한 항목 활성화/비활성화
  • 커스텀 스크립트 추가
  • GRUB2를 MBR과 특정 파티션에 중 어디에 설치할 것인지 선택
  두 번째 탭에서는 공통 설정을 할 수 있으며 아래와 같은 파라미터와 설정을 조정할 수 있습니다.
  • 디폴트 부트 항목 설정, 항목 번호 선택, 항목 설명 변경
  • GRUB2 부트 타임 보여주기/감추기
  • 커널 옵션 설정
  • 디폴트 OS로 부팅하기 전까지 대기시간
  마지막인 세 번째 탭은 외형 설정으로 grub 메뉴의 외형을 변경할 수 있습니다.
  • 해상도 변경
  • 색상 조합을 변경하여 커스텀 룩 설정
  • 메뉴의 배경화면 설정


2013/06/21 14:03 2013/06/21 14:03
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Using Taskset for Priority Tasks
관련 글 : cpulimit - CPU 점유율 제한 프로그램과 응용 스크립트

  이전에 CPU 사용률을 제한하는 것과 관련된 포스팅했었는데 이번에는 멀티프로세서(멀티 코어 포함) 시스템에서 특정 CPU(들)에 작업을 할당하는 것과 관련된 포스팅입니다. taskset 명령어를 사용하면 특정 프로세스를 특정 CPU에 할당할 수 있습니다. 아래는 구글 크롬 웹 브라우저를 하나의 CPU(정확히는 0번 CPU)만 사용하도록 실행하는 모습입니다.
taskset 0x00000001 google-chrome
  그리고 아래는 이미 실행 중인 크롬 프로세스에 대해 동일한 명령을 내리는 모습입니다.
taskset -p 0x00000001 크롬의_PID
  위의 명령어로 인해 크롬은 하나의 CPU(0x00000001은 CPU 0번에 대한 mask)만 사용하게 됩니다. 만약 2개의 CPU(정확히는 0번과 1번 CPU)를 사용하게 하고 싶다면 0x00000003(2진수로 '11')을 쓰면 됩니다. mask를 2진수로 고쳤을 때 가장 오른쪽이 0번 CPU를 뜻하고 왼쪽으로 가면서 CPU 번호가 하나씩 증가합니다.

  직접 마스크 값을 입력하는 방법 대신 -c 옵션과 함께 CPU의 번호(개수가 아님)를 콤마와 함께 나열(예: -c 0,1,3)하거나 범위(예: -c 0-3)로 쓰거나 둘을 혼합(예: -c 0,2-3)해서 사용할 CPU를 지정할 수도 있습니다.

  특정 프로세스가 어떤 CPU를 사용하는지 보려면 -p 옵션과 함께 대상 프로세스의 PID를 적습니다.
$ taskset -p 19992
pid 19992's current affinity mask: f
  위의 결과를 보면 해당 프로세스가 사용하는 CPU의 마스크 값이 f인데 이것은 0번~3번까지 총 4개의 CPU를 사용하고 있다는 뜻입니다. f를 2진수로 바꾸면 '1111'이며 이것이 "mask"라는 것을 생각하면 왜 f가 CPU 4개를 뜻하는지 알 수 있습니다.

  참고로 위 명령어를 실행한 시스템은 하나의 물리적인 프로세서에 2개의 코어가 있으며 하이퍼쓰레딩이 작동중이기 때문에 논리적으로 총 4개의 프로세서가 존재합니다. taskset으로 프로세스가 사용할 CPU를 별도로 지정하지 않는다면 기본적으로 저렇게 모든 CPU를 사용하게 됩니다. 그러므로 만약 논리적으로 2개의 코어가 있었다면 위에서 f가 아닌 3이 출력됩니다.

2010/12/15 17:37 2010/12/15 17:37
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Weekend Project: Linux Filesystem Tune-up


more..



more..



more..



more..

2010/12/14 09:10 2010/12/14 09:10
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Linux Backup Server: Remote Wakeup, Automatic Shutdown
관련 글 : HOWTO: Set your system up for Wake On LAN (WOL)

  WoL은 Wake on Lan의 약자로서 브로드캐스트를 통해 매직 패킷이라고 불리는 예약된 패킷을 보내 특정 MAC의 NIC를 사용하는 컴퓨터를 부팅시키는 기능입니다. 경우에 따라서는 상당히 유용하게 쓰일 수 있고 특히 우리나라의 경우 공유기가 많이 사용되는데 이 공유기에서 WoL을 지원(매직 패킷을 보내는 기능)하는 경우가 많습니다. 이걸 이용하면 외부에서 집의 공유기로 접속하여 내부 네트워크의 컴퓨터(보통 자신의 PC)를 부팅시킨 후 원격 데스크탑이나 기타 프로그램을 이용해 자신의 컴퓨터를 이용할 수 있습니다.

  먼저 BIOS에서 WoL을 지원해야 하는데 왠만한 구형이 아닌 이상은 대부분 지원을 하기 때문에 걱정은 없지만 기본적으로 기능이 활성화되어 있지 않다는 것이 문제입니다. 따라서 자신의 메인보드 매뉴얼을 참조하여 기능을 먼저 활성화시켜야 합니다.

  이제 리눅스에서 아래의 명렁어로 NIC의 WoL 기능을 사용할 수 있는지, 그리고 기능이 활성화되어 있는지 확인합니다. 참고로 실행에는 루트 권한이 필요합니다.
$ sudo ethtool eth0 | grep -i wake-on
    Supports Wake-on: g
    Wake-on: d
  'Supports Wake-on'에서 g는 'Wake on MagicPacket'으로 이 NIC는 WoL 기능을 지원한다는 뜻입니다. 다음으로 'Wake-on'인데 d는 'Disabled'로 현재 비활성화된 상태입니다. 즉, NIC가 지원은 하지만 비활성화 상태입니다. 아래는 WoL 기능을 활성화시키고 확인하는 것을 보여주고 있습니다.
$ sudo ethtool -s eth0 wol g
$ sudo ethtool eth0 | grep -i wake-on
    Supports Wake-on: g
    Wake-on: g
  'Supports Wake-on'과 'Wake-on'에 모두 g가 있으면 해당 PC를 대상으로 WoL을 사용할 준비가 완료된 겁니다. 아래의 명령어로 NIC의 MAC 주소를 알아냅니다.
$ ifconfig eth0 | grep -i hwaddr
eth0      Link encap:Ethernet  HWaddr 00:25:11:75:dc:91 
  이제 컴퓨터를 끈 후 같은 네트워크에 있는 다른 리눅스 머신에서 아래와 같이 명령어를 사용하면 WoL을 사용하여 컴퓨터를 부팅시킬 수 있습니다.
$ wakeonlan -p 8 00:25:11:75:dc:91
  '-p 8' 옵션은 매직 패킷을 UDP 포트 8번으로 보내라는 옵션입니다. 디폴트로 보내는 포트는 UDP 9번인데 테스트용 포트로서 패킷이 그냥 폐기되는 경우가 많기 때문에 아무거나 다른 포트 번호를 향해 보내는 것이 좋습니다. 이왕이면 8번처럼 아무 서비스에도 안 쓰이는 번호에 보내는 것이 더 좋으며 대표적인 서비스의 포트 번호들은 /etc/services 파일에 있으므로 해당 파일을 참조해 안 쓰이는 UDP 포트를 사용하도록 합니다.

  이제 다 끝난 것처럼 보이지만 부팅을 하는 과정에서 이 설정이 다시 초기화되기 때문에 부팅과 관련된 스크립트를 약간 손봐서 앞서 했던 설정을 자동화시킬 필요가 있습니다. 레드햇 계열의 배포판일 경우에는 /etc/rc.local 파일에 아래와 같은 내용을 추가하여 부팅할 때마다 WoL을 활성화시킬 수 있습니다.
# Setup WOL for next boot
stat_busy "Setting WOL to Active"
/usr/sbin/ethtool -s eth0 wol g
stat_done
  데비안 계열의 배포판이라면 /etc/network/interfaces 파일에서 WoL을 사용할 NIC가 적힌 줄(예: iface eth0 inet dhcp)의 아래 부분에 다음의 내용을 추가하여 인터페이스가 올라간 후(대표적으로 부팅 시)와 내려간 후(대표적으로 종료 시)마다 WoL을 활성화시킬 수 있습니다.
post-up /usr/sbin/ethtool -s $IFACE wol g
post-down /usr/sbin/ethtool -s $IFACE wol g
  그래도 안 되는 경우가 있는데 그 중 한 해결책으로 저의 경우 우분투 9.10의 환경에서 /etc/network/interfaces 파일에 아래와 같이 드라이버에 wake up flag를 enabled로 설정해줬습니다.
post-up echo enabled > /sys/class/net/eth0/device/power/wakeup
post-down echo enabled > /sys/class/net/eth0/device/power/wakeup
  이와 관련된 내용은 http://lowtek.ca/roo/2009/wake-on-lan/ 에서 좀 더 자세히 보실 수 있습니다.

2010/12/13 14:31 2010/12/13 14:31
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Choose the Best Server for your updates and Software Sources in Ubuntu 10.10

  우분투가 패키지 다운로드와 업데이트에 이용할 서버는 기본적으로 사용자가 설정한 위치(국가)에 따라 결정됩니다. 이 글은 그 서버를 원하는 서버로 변경하는 방법을 설명하고 있습니다. 원문 링크를 보시면 매 단계마다 그에 해당하는 그림을 보실 수 있습니다.
  1. Applications -> Ubuntu Software Center 실행
  2. 소프트웨어 센터 메뉴에서 Edit -> Software Sources... 선택
  3. 'Download from'에서 현재 설정된 서버를 확인 가능
  4. 드롭다운을 클릭하여 'Other...'를 선택
  5. 'Select Best Server' 버튼을 클릭
  6. 사용자에게 최상인 서버를 찾기 위해 테스트가 진행됨
  7. 테스트가 끝나면 사용자에게 최상인 서버가 자동으로 선택됨
  8. 'Choose Server' 버튼 클릭
2010/12/10 17:17 2010/12/10 17:17
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : 25 Ubuntu tips for beginners

  우분투(라기 보다 데비안 기반 패포판)에서 패키지 업데이트를 위한 기초적인 팁입니다. 사실 원문에 괜찮은 팁이 좀 있을 줄 알고 포스팅을 시작했는데 읽고 보니 별게 없어서 내용이 참 없습니다. 특히 우분투의 '업데이트 관리자(Update Manager)'를 사용한다면 거의 아무런 가치가 없네요. 그렇다고 그냥 버리자니 투자한 시간이 아깝고...그런 관계로 그냥 포스팅합니다;;


1. 설치 직후 업데이트 실시
  어느 배포판이든 평범하게 OS를 CD로 설치하면 나온지 몇 일 안 된 버전이 아닐 경우 설치가 끝난 직후 업데이트가 필요하다는 것을 알립니다. 우분투의 경우 작업줄에서 오렌지 색의 아이콘이 깜빡이는데 이를 클릭하면 설치 시 설정했던 관리자 패스워드를 물어옵니다. 입력한 후 '업데이트 관리자'를 통해 업데이트를 실시합니다. 업데이트 관리자는 메뉴에서 System -> Administration -> Update Manager를 통해서도 실행할 수 있습니다.


2. 터미널에서 패키지 목록 수동으로 업데이트
  업데이트 관리자에서 Check 버튼을 눌러 패키지 목록을 최신 목록으로 업데이트할 수 있지만 같은 작업을 터미널에서도 할 수 있습니다. 우분투 서버처럼 X윈도우를 사용하지 않을 경우엔 필요하겠죠? 터미널 창에서 아래의 명령어를 입력하여 패키지 목록을 업데이트할 수 있습니다.
sudo apt-get update
  햇갈리지 말아야 할 것이 있는데 이것은 패키지의 '목록'을 업데이트하는 것이지 각 패키지 자체를 업데이트하는 것이 아니라는 겁니다. 실제 패키지들의 버전을 올리는 것은 바로 아래에서 설명하고 있습니다.


3. 모든 패키지를 최신 버전으로 업그레이드
  위에서 패키지 목록을 업데이트했으므로 이를 이용해 현재 설치된 모든 패키지들을 최신 버전으로 설치할 수 있습니다. 업데이트 관리자의 경우 목록을 갱신한 상태에서 Install Updates 버튼만 누르면 되고 터미널의 경우 아래의 명령어를 사용하면 됩니다.
sudo apt-get upgrade


4. 배포판 업그레이드
  패키지의 레벨을 넘어서 우분투의 버전을 최신 버전으로 끌어올립니다. 새 버전이 나올 때마다 이미지 파일을 받아 새로 설치하지 않아도 이 명령어로 우분투의 버전을 올릴 수 있습니다.
sudo apt-get dist-upgrade
  어차피 업데이트 관리자를 사용할 경우 목록에 나타나는 것을 모두 업데이트하는 것만으로도 위와 같은 효과를 얻을 수 있습니다.


5. ubuntu-restricted-extras 설치
  우분투에는 라이센스 문제로 인해 필수라고 할 수 있는 소프트웨어가 의도적으로 빠져 있습니다. 이런 것의 대표적인 예로는 플래시 플러그인, MP3와 DVD 재생 지원, 표준 트루타입 폰트 등이 있습니다. 이를 모아놓은 ubuntu-restricted-extras라는 이름의 패키지가 있으며 시냅틱 패키지 매니저(System->Administration->Synaptic Package Manager)에서 'ubuntu-restricted-extras'를 검색해서 설치하면 됩니다.

2010/12/06 14:52 2010/12/06 14:52
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Clock management on Linux

  리눅스에서 네트워크를 기반으로 시간을 동기화하는 NTP(Network Time Protocol)에 대한 내용입니다. 시간을 동기화하는 것은 생각보다 중요한 일입니다. 시간이 잘못 설정되면 cron에 걸린 스케쥴이 엉뚱한 시간에 돌아갈 수 있고 시스템의 시간차를 이용한 해킹의 대상이 될 수도 있습니다. 참고로 NTP는 UTC(Coordinated Universal Time)에 대한 정보만 제공할 뿐 타임 존이나 서머타임(Daylight Saving Time)에 대한 정보는 제공하지 않습니다.


NTPDATE
  ntpdate는 NTP 서버로부터 날짜와 시간을 가져와 동기화시키는 프로그램입니다. 루트 권한으로 아래의 방식으로 시스템의 시간을 동기화할 수 있습니다.
mirashi@myservlab:~$ sudo ntpdate time.bora.net
[sudo] password for mirashi:
22 Nov 15:15:50 ntpdate[27392]: step time server 203.248.240.140 offset 126.209753 sec


NTPD
  ntpd는 시스템 시간을 인터넷 표준 시간 서버와 동기화하여 시간 설정을 올바르게 유지하는 데몬입니다. 일반적으로 /etc/ntp.conf 파일을 설정 파일로 사용합니다. 우분투의 경우 아래의 명령어를 통해 ntpd를 설치할 수 있습니다.
mirashi@myservlab:~$ aptitude install ntp
  설정 파일에서 server 파라미터는 사용할 타임 서버를 지정하는데 쓰입니다.
server time.bora.net
  driftfile 파라미터는 시스템 시계가 UTC와 싱크하는데 사용할 주파수(frequency correction)가 담긴 파일을 지정하는 파라미터입니다. 지정 후 ntpd 데몬을 재시작하면 동기화 작업 시간을 최소화할 수 있습니다. 지정한 파일에 값이 있을 경우 해당 값을 Initial Correction Frequency 값으로 사용하고 없을 경우 디폴트 값으로 0을 사용합니다.
driftfile /var/lib/ntp/ntp.drift
  자신의 시스템에 ntpd가 실행되고 있는지 확인하고 싶다면 아래의 명령어를 사용하면 됩니다.
mirashi@myservlab:~$ ntpq -p
     remote          refid       st t when poll reach delay offset jitter
==============================================================================
 time.bora.net   90.1.14.51      2  u  2    64    1   10.114 52.834 0.001
  지금까지의 내용을 보고 "cron과 ntpdate만 사용하면 ntpd를 쓸 필요가 없겠네"라고 생각할 수 있지만 ntpd는 최소의 자원만 사용하면서 정확성과 신뢰성을 극대화하는 정교한 알고리즘을 사용하기 때문에 ntpd가 훨씬 더 좋은 대안이라고 할 수 있습니다.


HWCLOCK
  hwclock은 RTC(Real Time Clock)이나 CMOS Clock이라고 불리는 하드웨어 시간을 설정하거나 그 시간을 가져와 시스템에 적용하는데 사용하는 프로그램으로 대부분의 리눅스에서 사용합니다.

  아래의 명령어를 통해 컴퓨터에 설정된 하드웨어 시간을 볼 수 있습니다.
mirashi@myservlab:~$ sudo hwclock -r
Mon 22 Nov 2010 07:04:49 AM KST  -0.299531 seconds
  --systohc 옵션을 사용하면 시스템 시간을 하드웨어 시간에 덮어씌울 수 있습니다. 이를 이용해 아래의 명령어로 타임 서버에서 시간을 가져와 시스템 시간과 하드웨어 시간에 적용할 수 있습니다.
ntpdate pool.ntp.org && hwclock --systohc


2010/11/22 15:06 2010/11/22 15:06
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : How To Upgrade Ubuntu 10.04 (Lucid Lynx) To 10.10 (Maverick Meerkat) (Desktop & Server)

  기사 원문은 우분투 10.04에서 10.10으로 업그레이드하는 방법이지만 사실상 버전과 관계 없이 통하는 방법입니다. X-윈도우에서 업데이트 매니저를 통해 하는 방법과 커맨드에서 aptitude 명령어를 통해 하는 방법이 있습니다.


more..



more..

2010/11/22 13:46 2010/11/22 13:46
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Ten Essential Linux Admin Tools

  리눅스 관리 툴 10개를 소개하는 글입니다. 뭐가 있나 궁금해서 가입까지 하고 까봤는데 별거 없어 OTL...하긴 'Essential'이라는데 별거 있겠냐만.

1. Webmin
  웹 기반의 리눅스(와 기타OS) 관리 플랫폼입니다. 초큼 많이 유명한 녀석이죠. 펄로 만들어졌으며 일반적인 관리 작업을 쉽고 효율적으로 할 수 있습니다. 여기에 추가로 아파치, MySQL, 센드메일과 연관된 대한 복잡한 설정을 도와줍니다.

2. byobu
  병풍의 일본어 발음이 이름인 프로그램입니다. 터미널 화면을 커스터마이징하는 유틸리티로 GNU의 screen 유틸리티의 업그레이드 버전이라고 할 수 있겠습니다.

3. tcpdump
  전 리눅서들이 다 아는...은 좀 오번가? 암튼 바로 그겁니다. 네트워크가 문제를 일으켜 우리를 압박할 때 딱히 바로 쓸만한 놈이라면 이 정도죠.

4. Virtual Network Computing(VNC)
  VNC는 원래 영국의 캠브릿지에 있는 올리베티라는 연구소에서 만든 플랫폼에 독립적인 원격 접속 프로그램으로서 오픈 소스로 공개됐었습니다. 현재는 TightVNC, UltraVNC, RealVNC등 많은 VNC 프로그램들이 존재합니다.

5. GNOME Partition Editor (=GParted)
  얼마 전 파티션 리사이징 관련 포스트에서 등장한 그 프로그램입니다. 라이브 CD로 부팅 후 GUI 환경으로 파티션을 쉽게 생성, 삭제는 물론이고 리사이징할 수 있습니다.

6. DenyHosts
  시스템에 SSH로 로그인을 계속 시도하는 호스트를 모니터링하는 파이썬으로 만들어진 스크립트입니다.

7. Nagios
  고성능의 네트워크 모니터링 툴...이라고는 하는데 실제로 직장에서 사용하고 있는 저의 입장으로서는 고성능인지는 잘 모르겠습니다. 제대로 기능을 활용하지 않고 있어서요;; 등록한 호스트, 서비스, 프로토콜을 모니터링할 수 있고 플러그인, 에드온, 확장기능, 모듈을 통해 기능을 추가할 수 있습니다.

8. 리눅스 복구 CD
  유명한 복구용 배포판으로는 CUI 기반의 데이터 복구 및 포렌식을 위한 Ubuntu Rescue Remix, 진단과 복구에 특화된 Parted Magic, 시스템 복구와 네트워크 분석을 위한 데비안 기반의 GRML이 있습니다.

9. Dropbox
  별거 아니고 웹 하드입니다. 특징으로는 클로스 플랫폼이라서 리눅스, 윈도우, 안드로이드 등 여러 OS에서 이용이 가능하다는 겁니다. 스마트폰 때문에 유명해지지 않았나 싶습니다.

10. Darik's Boot and Nuke(DBAN)
  하드 디스크 와이프 프로그램입니다. 위의 것과 마찬가지로 리눅스와 직접적인 관련은 없습니다. 이미지를 받아서 시디로 굽거나 구버전(예: 1.0.7)의 윈도우용 인스톨러를 받아 플로피 디스크나 USB에 설치해서 시스템에 연결하고 부팅하면 하드 디스크의 데이터를 깡그리 날려버립니다. 감지하는 모든 하드 디스크를 날려버린다니 주의하시기 바랍니다 -_-;

2010/11/17 15:34 2010/11/17 15:34
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Free Up Insane Amount of Disk Space in Ubuntu by Deleting Cached Package Files

  데비안 계열에서 apt-get(과 그걸 이용하는 Synaptic Package Manager)을 이용하여 패키지를 다운받아 설치하면 설치가 끝나도 다운받은 패키지 파일이 지워지지 않습니다. 다음에 또 설치할 일이 있을까 봐 백업을 하기 때문입니다. 하지만 패키지를 다시 받으면 받았지 이렇게 다시 사용할 가능성이 거의 없는 패키지 파일을 보관하는 것은 용량 낭비에 지나지 않습니다.

  먼저 아래는 커맨드 라인에서 캐시된 패키지 파일들의 용량을 확인한 후 지우고 지워진 용량을 확인하는 것을 보여주고 있습니다.
mirashi@myservlab:/etc/default$ du -sh /var/cache/apt/archives/
106M    /var/cache/apt/archives/
mirashi@myservlab:/etc/default$ sudo apt-get clean
[sudo] password for mirashi:
mirashi@myservlab:/etc/default$ du -sh /var/cache/apt/archives/
44K    /var/cache/apt/archives/
  Synaptic Package Manager에서도 같은 작업을 할 수 있습니다. Settings -> Preferences -> Files에서 'Delete Cached Package Files' 버튼을 통해 캐시된 패키지 파일들을 삭제할 수 있습니다. 덤으로 그 위에 있는 'Delete downloaded packages after installation'를 선택하면 설치 후 자동으로 패키지 파일을 바로바로 지웁니다.


2010/11/16 10:26 2010/11/16 10:26