Archive for September, 2012

iso 파일 마운트: losetup, fuseiso

리눅스에서 iso 파일을 마운드하는 방법은 2가지 있습니다.

첫번째는 loop device를 사용하는 방법으로

$ losetup /dev/loop0 /var/cache/ubuntu-12.04-amd64.iso
$ mount /dev/loop0 /mnt
bla bla ....
$ umount /mnt
$ losetup -d /dev/loop0

여기서 loop device는 중복이 되면 안되니 losetup -a로 비어있는 loop device를 확인 해야합니다.

두번째는 fuseiso를 이용하는 방법입니다.

$ apt-get install fuseiso
$ mount -t fuse.fuseiso -o allow_other /var/cache/ubuntu-12.04-amd64.iso /mnt
or
$ fuseiso /var/cache/ubuntu-12.04-amd64.iso /mnt -o allow_other

bla bla ....
$ umount /mnt
or
$ fusermount -u /mnt
  • allow_other 옵션이 없으면 다른 사용자는 접근할 수 없습니다.
  • fuseiso 명령으로 마운트하면 fusemount -u로 해제해야합니다.

fuseiso를 사용하는 것이 훨씬 간단해 보입니다.


vim modeline

텍스트 파일을 편집하다 보면 아래와 비슷한 형식의 내용을 접한 적이 있을 것이다.

이것은 modeline이라 부르는 것으로 vimrc의 설정이 vim을 실행하면 바로 적용되는 것인 반면에, modeline은 파일에 적은 것으로 알 수 있듯이 파일 단위로 설정을 적용하는 것이다.

물론 filetype plugin을 통해서 파일 타입별로 셋팅을 맞출 수 있으나, 다른 사람과의 공동작업을 위해서는 다른 사람도 같은 설정 하에서 작업하기 위해서는 이 방법이 편한다.

# vim: ts=4 sw=4 tw=80 nu

python이라면 일반적으로 아래와 같이 modeline을 적을 것이다.

# vim: expandtab ts=4 sw=4 tw=80 nu

만일 C 소스라면 modeline은 아래와 같이 적을 수 있다.

/* vim: expandtab ts=4 sw=4 tw=80 nu */

그리고 이 설정은 modeline 옵션이 설정되어 있어야 한다. 따라서 안된다면 set modeline 으로 설정하거나 vimrc에 넣으면 된다. Ubuntu에서는 기본으로 꺼져있다.

ps. 이 글을 적는 이유는 이렇게 사용한다는 것은 알겠는데, 이게 modeline이라는 사실을 잃어버려 항상 검색할 때 키워드를 못찾아서 그런다. ㅎㅎ


screen으로 여러 윈도우 한번에 열기

screen을 이용해 여러 윈도우를 한번에 열고 각각의 윈도우에서는 적당한 호스트를 연결하는 쉘 스크립트 입니다. 이전에 시도했던 것에서 많은 문제가 발생해서 사용하지 않고 있었으나 이것은 좀 쓸만합니다.

#!/bin/bash
SCREENNAME=stack
NL=`echo -ne '\015'`

if screen -ls | egrep -q "[0-9].$SCREENNAME"; then
        echo "screen named $SCREEN_NAME already exists"
        exit
fi

screen -d -m -S $SCREENNAME -t shell
sleep 1

host_spec="host1/192.168.0.10 host2/192.168.0.11"
for spec in $host_spec; do
        name=`echo "$spec" | cut -d '/' -f 1`
        host=`echo "$spec" | cut -d '/' -f 2`

        screen -S $SCREENNAME -X screen -t "$name"
        screen -S $SCREENNAME -p "$name" -X stuff "sshpass -ppassword ssh root@$host$NL"
done

echo "please run screen -r 'screen -r $SCREENNAME'"

물론 이것도 약간의 문제점이 있습니다. 명령을 실행하면 screen이 background에서 detach된 상태로 만들어 지는데, 이를 수동으로 attach해야하는 문제가 있습니다.

그래도 이전에 화면 깨지는 것보다는 훨씬 낫죠. ㅎㅎ

ps. 이 스크립트는 devstack의 stack.sh를 많이 참고했습니다.


  • Copyright © 1996-2010 Your wish is my command. All rights reserved.
    iDream theme by Templates Next | Powered by WordPress