<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog::2310 &#187; Linux</title>
	<atom:link href="http://blog.2310.net/archives/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.2310.net</link>
	<description>2310</description>
	<lastBuildDate>Sat, 06 Aug 2011 23:40:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Git Memo</title>
		<link>http://blog.2310.net/archives/540</link>
		<comments>http://blog.2310.net/archives/540#comments</comments>
		<pubDate>Sun, 21 Jun 2009 03:46:01 +0000</pubDate>
		<dc:creator>2310</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Program]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://blog.2310.net/?p=540</guid>
		<description><![CDATA[個人的なGitメモです。「WEB+DB PRESS 第50号」の中の「特集2 はじめてのGit」を基礎としています。 書式 レポジトリ /home/hoge/repositry ... ローカルのファイル形式 host:/home/repositry ... scp形式 各コマンド git init レポジトリの作成 git init --bare ... ワークツリー無し git init --shared ... ワークツリー無し ※ 共有ディレクトリを作成する場合はumaskを002(グループ以外にも書き込み許可)とか007(グループ以外には読み込みも付加) git status 状態表示 git diff 差分をとる。gitの場合、状態はワークツリー、インデックス(キャッシュ)、レポジトリの3種類ある。それぞれのdiffは下のかんじ。 git add ワークツリーの状態をindexへ記録 git add -u ... ワークツリーの状態を一括してindexへ git add -p ... diffのハンク毎にaddする(対話式) git add -A ... git add . &#38;&#38; [...]]]></description>
			<content:encoded><![CDATA[<p>個人的なGitメモです。「<a href="http://gihyo.jp/magazine/wdpress/archive/2009/vol50">WEB+DB PRESS 第50号</a>」の中の「特集2 はじめてのGit」を基礎としています。</p>

<p><span id="more-540"></span></p>

<h3>書式</h3>

<h4>レポジトリ <repositry></h4>

<pre><code>/home/hoge/repositry ... ローカルのファイル形式
host:/home/repositry ... scp形式
</code></pre>

<h3>各コマンド</h3>

<h4>git init</h4>

<p>レポジトリの作成</p>

<pre><code>git init --bare ... ワークツリー無し
git init --shared ... ワークツリー無し
※ 共有ディレクトリを作成する場合はumaskを002(グループ以外にも書き込み許可)とか007(グループ以外には読み込みも付加)
</code></pre>

<h4>git status</h4>

<p>状態表示</p>

<h4>git diff</h4>

<p>差分をとる。gitの場合、状態はワークツリー、インデックス(キャッシュ)、レポジトリの3種類ある。それぞれのdiffは下のかんじ。</p>

<p><img src="http://blog.2310.net/my-store/images/20090621_git_diagram.png" alt="ダイアグラム" /></p>

<h4>git add</h4>

<p>ワークツリーの状態をindexへ記録</p>

<pre><code>git add -u ... ワークツリーの状態を一括してindexへ
git add -p ... diffのハンク毎にaddする(対話式)
git add -A ... git add . &amp;&amp; git add -u
</code></pre>

<h4>git reset</h4>

<p>状態を戻る(git revertとは異なりcommitを無かったことにする)</p>

<pre><code>git reset HEAD^ ... HEADを一つ前のコミットまで戻る(インデックスも含め直近のコミットまでを取り消す)
git reset --soft HEAD^ ... 作業ツリーはそのままでレポジトリのポインタをHEADの一つ前まで戻る
git reset --hard HEAD  ... ワークツリーの状態を含めてHEADまで戻る(ワークツリー上の変更をインデックスも含め取消)
git reset --hard HEAD^ ... ワークツリーの状態を含めてHEADの一つ前まで戻る
git reset --hard master~4 ... ブランチmasterから4つ前までを取り消す
</code></pre>

<h4>git commit</h4>

<p>indexに記録された状態をレポジトリへ</p>

<pre><code>git commit -a ... git add -u &amp;&amp; git commit
git commit -v ... git diff --cached の内容も表示する
git commit --amend ... 直前コミットの取消 (git reset --soft HEAD^ &amp;&amp; edit &amp;&amp; git commit -c ORIG_HEAD)
</code></pre>

<h4>git log</h4>

<p>ログ</p>

<pre><code>git log -p ... パッチ形式で取得
git log --pretty=short ... サマリー(最初の段落)のみ取得
git log --stat ... 変更されたファイル名なども含め表示
</code></pre>

<h4>git brame</h4>

<p>一行毎に表示</p>

<h4>git revert</h4>

<p>レポジトリ内の履歴を打ち消す(逆のパッチをあてるような感じ？)</p>

<h4>git show</h4>

<p>git logとの違いが把握できていない</p>

<h4>git push</h4>

<p>レポジトリに記録を反映させる</p>

<pre><code>git push &lt;repositry&gt; &lt;branch&gt; ... &lt;repositry&gt;の&lt;branch&gt;に反映
</code></pre>

<h4>git pull</h4>

<p>レポジトリから反映させる</p>

<h4>git push</h4>

<p>レポジトリに記録を反映させる</p>

<pre><code>git push &lt;repositry&gt; &lt;branch&gt; ... &lt;repositry&gt;の&lt;branch&gt;に反映
</code></pre>

<h4>git stash</h4>

<p>現在のコミットしてない変更状況を保存</p>

<pre><code>git stash ... 現在の状況を保存
git stash pop ... 保存した状況を再読み込み
</code></pre>

<h4>git branch</h4>

<pre><code>git branch ... branchのリストを表示/現在のブランチを確認
git branch &lt;branch&gt; ... &lt;branch&gt;とする(新規作成もそのままOK？)
</code></pre>

<h4>git checkout</h4>

<pre><code>git checkout &lt;branch&gt; ... &lt;branch&gt;にスイッチ
git checkout -b &lt;branch&gt; ... git branch &lt;branch&gt; &amp;&amp; git checkout &lt;branch&gt;
</code></pre>

<h4>git merge</h4>

<pre><code>git merge &lt;branch&gt; ... 現在のブランチと&lt;branch&gt;をマージ (git pull . &lt;branch&gt;)
</code></pre>

<h4>git rm</h4>

<pre><code>git rm --cached ... キャッシュの中からのみ取り除く(間違えてaddした場合など)
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.2310.net/archives/540/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linuxでへなちょこバックアップ</title>
		<link>http://blog.2310.net/archives/212</link>
		<comments>http://blog.2310.net/archives/212#comments</comments>
		<pubDate>Tue, 30 Dec 2008 14:05:24 +0000</pubDate>
		<dc:creator>2310</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://k2310.s332.xrea.com/blog.2310.net/?p=212</guid>
		<description><![CDATA[使用しているPCを整理し、ついでにrsyncを使用してバックアップする簡単なラッパースクリプトを作成、 cronで定期実行することにしました。私レベルの使用だと、RAIDなんて高度なものは必要無いです。 my-backupという非常に安易な名前のスクリプトに仕上げましたが、使用方法はまずます簡単です。 いくつか例を挙げると、 # /homeから/mnt/backupへ同期する # 当然/homeは一切変更されない my-backup /home /mnt/backup # /homeから/mnt/backupへ同期する # しかし/home/dummyディレクトリ以下は同期対象としない # -eは除外(exclude) my-backup /home /mnt/backup -e /home/dummy # /home/usrから/mnt/backupへ同期する # /home/usrの直下で.ではじまるファイル(ドットファイル)を除外する my-backup /home/usr /mnt/backup -e /home/usr/.* # /home/dummyディレクトリ以下は同期対象としないが、 # /home/dummy/importantディレクトリ以下は同期する # -iは含有(include) my-backup /home /mnt/backup -i /home/dummy/important -e /home/dummy # /home/usr/.* (ドットファイル)を除外するが # /home/usr/.fluxboxは対象とする my-backup /home/usr /mnt/backup -i /home/usr/.fluxbox -e [...]]]></description>
			<content:encoded><![CDATA[<p>使用しているPCを整理し、ついでに<a href="http://www.itmedia.co.jp/help/tips/linux/l0328.html">rsync</a>を使用してバックアップする簡単なラッパースクリプトを作成、
cronで定期実行することにしました。私レベルの使用だと、<a href="http://e-words.jp/w/RAID.html">RAID</a>なんて高度なものは必要無いです。</p>

<p><span id="more-212"></span></p>

<p>my-backupという非常に安易な名前のスクリプトに仕上げましたが、使用方法はまずます簡単です。
いくつか例を挙げると、</p>

<pre><code># /homeから/mnt/backupへ同期する
#   当然/homeは一切変更されない
my-backup /home /mnt/backup

# /homeから/mnt/backupへ同期する
# しかし/home/dummyディレクトリ以下は同期対象としない
# -eは除外(exclude)
my-backup /home /mnt/backup -e /home/dummy

# /home/usrから/mnt/backupへ同期する
#   /home/usrの直下で.ではじまるファイル(ドットファイル)を除外する
my-backup /home/usr /mnt/backup -e /home/usr/.*

# /home/dummyディレクトリ以下は同期対象としないが、
# /home/dummy/importantディレクトリ以下は同期する
# -iは含有(include)
my-backup /home /mnt/backup -i /home/dummy/important -e /home/dummy 

# /home/usr/.* (ドットファイル)を除外するが
# /home/usr/.fluxboxは対象とする
my-backup /home/usr /mnt/backup -i /home/usr/.fluxbox -e /home/usr/.*

# -e と -i の順番は変わっても常に-iの方が優先される
my-backup /home /mnt/backup -e /home/dummy -i /home/dummy/important

# -e と -i はそれぞれ複数指定可能。競合する場合は常に-iの方が優先される
my-backup /home /mnt/backup -e /home/dummy /home/dummy2 -i /home/dummy/important /home/dummy2/bin

# -ssh をつけるとsshを使用して他PCのデータもバックアップも可能
my-backup root@my-server.net:/home /mnt/backup -e /home/dummy -i /home/dummy/important -ssh

# -test をつけると実際に同期は行わず、rsyncコマンドを表示しておしまい。テスト用
my-backup root@my-server.net:/home /mnt/backup -e /home/dummy -i /home/dummy/important -ssh -test
</code></pre>

<p>こんな感じですか。ちなみに私の場合はサーバマシンのデータのバックアップもsshを使用して手元のPCへ同期させています。
手元PCのwindowsデータもこのスクリプトを使用してバックアップしてます。</p>

<p>使用している実際のコマンドはソースを見れば分かりますが、</p>

<pre><code>rsync -auvz --delete --include=hogehoge --exclude=hogehoge (-e ssh)
</code></pre>

<p>です。root権限が無いと使用できないようになっているので、もしuser権限で使用したければ-auvzの部分を変更してください。</p>

<p>というわけでスクリプト。再配布、改変などご自由に。但し一切は自己責任でお願いします。</p>

<pre><code>#!/bin/bash
#-*- Shell-Script -*-

##### variable
_ErrorMessage=""
_ExcludeFileList=
_IncludeFileList=
_RSyncArgment=
_SSHFlag=
_TESTFLag=
_Flag=
_SourceFile=
_DestFile=

##### error message

_ErrorMessage="${_ErrorMessage}rsyncCentral Usage : &lt;SourceFile&gt; &lt;DestFile&gt;"
_ErrorMessage="${_ErrorMessage}[-e &lt;file1&gt; &lt;file2&gt; ... | -c &lt;file1&gt; &lt;file2&gt; ... | -ssh | -test ]\n"
_ErrorMessage="${_ErrorMessage}\t-i\trsync's '--include' option\n"
_ErrorMessage="${_ErrorMessage}\t-e\trsync's '--exclude' option\n"
_ErrorMessage="${_ErrorMessage}\t-ssh\trsync's '-e ssh' option\n"
_ErrorMessage="${_ErrorMessage}\t-test\tfor debug\n"


##### error check
if [ $# -lt 2 ]; then
  echo -e $_ErrorMessage 1&gt;&amp;2
  exit 1
fi


##### get argment
_SourceFile=$1
_DestFile=$2
shift 2
for s in $@ ; do
    case $s in
        -e)
            _Flag=exclude ;;
        -i)
            _Flag=include ;;
        -ssh)
            _SSHFlag=1
            _Flag=
            ;;
        -test)
            _TESTFLag=1
            _Flag=
            ;;
        *)
            case $_Flag in
                exclude)
                    _ExcludeFileList="$_ExcludeFileList $s" ;;
                include)
                    _IncludeFileList="$_IncludeFileList $s" ;;
                *)
                    echo "Error with argment"
                    exit 1
                    ;;
            esac
    esac
done

##### check file/dir exists

if [ ! -r $_SourceFile -a x = x$_SSHFlag  ]; then
  echo "error ...  $_SourceFile isn't readable."
  exit 1
fi
if [ ! -w $_DestFile  -a x = x$_SSHFlag  ]; then
  echo "error ...  $_DestFile isn't writable."
  exit 1
fi

##### ssh set
if [  ! x = x$_SSHFlag ]; then
  _RSyncArgment="$_RSyncArgment -e ssh"
fi

##### include file set
for i in $_IncludeFileList ; do
    _RSyncArgment="$_RSyncArgment --include="$i""
done

##### exclude file set
for i in $_ExcludeFileList ; do
    _RSyncArgment="$_RSyncArgment --exclude="$i""
done

##### execute
if [ x = x$_TESTFLag ]; then
  rsync -auvz --delete $_RSyncArgment $_SourceFile $_DestFile
else
  echo -e "\n\n\t*** Test Result ***"
  echo "rsync -auvz --delete $_RSyncArgment $_SourceFile $_DestFile"
fi
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.2310.net/archives/212/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gentooで無線LANを</title>
		<link>http://blog.2310.net/archives/206</link>
		<comments>http://blog.2310.net/archives/206#comments</comments>
		<pubDate>Tue, 30 Dec 2008 13:58:51 +0000</pubDate>
		<dc:creator>2310</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://k2310.s332.xrea.com/blog.2310.net/?p=206</guid>
		<description><![CDATA[設定した時の旧いメモ。WLI-PCI-G54での設定。 #emerge wireless-tools #emerge ndiswrapper ドライバをインストールする。私の場合使用しているのがWLI-PCI-G54であるため、wdrv_392.exeを展開した後、 #ndiswrapper -i netcbg54.inf (ただし現在ではbcmwl5aを使用しています。) /etc/conf.d/netに以下を追加 # wlan0 iface_wlan0="dhcp" dhcpcd_wlan0="-DN" iface_&#60;ESSIDを記入&#62;="dhcp" essid_&#60;ESSIDを記入&#62;="00074DAF9888" key_&#60;ESSIDを記入&#62;="s:&#60;WEPを記入&#62;" 以上でおしまいですが、/etc/init.d/net.wlan0をどこからか拾ってきて、ちょっと改造して使用しているので下に全文掲載。 私もあまり理解していませんので、不具合等発生した場合は自己責任でお願いします。 #!/sbin/runscript # Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /etc/init.d/net.eth0,v 1.30 2003/10/18 18:03:19 faye Exp $ #NB: Config is in /etc/conf.d/net checkconfig() { [...]]]></description>
			<content:encoded><![CDATA[<p>設定した時の旧いメモ。WLI-PCI-G54での設定。</p>

<p><span id="more-206"></span></p>

<pre><code>#emerge wireless-tools
#emerge ndiswrapper
</code></pre>

<p>ドライバをインストールする。私の場合使用しているのがWLI-PCI-G54であるため、wdrv_392.exeを展開した後、
    #ndiswrapper -i netcbg54.inf
(ただし現在ではbcmwl5aを使用しています。)</p>

<p>/etc/conf.d/netに以下を追加</p>

<pre><code># wlan0
iface_wlan0="dhcp"
dhcpcd_wlan0="-DN"
iface_&lt;ESSIDを記入&gt;="dhcp"
essid_&lt;ESSIDを記入&gt;="00074DAF9888"
key_&lt;ESSIDを記入&gt;="s:&lt;WEPを記入&gt;"
</code></pre>

<p>以上でおしまいですが、/etc/init.d/net.wlan0をどこからか拾ってきて、ちょっと改造して使用しているので下に全文掲載。
私もあまり理解していませんので、不具合等発生した場合は自己責任でお願いします。</p>

<pre><code>#!/sbin/runscript
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /etc/init.d/net.eth0,v 1.30 2003/10/18 18:03:19 faye Exp $

#NB: Config is in /etc/conf.d/net



checkconfig() {
  if [ -z "${iface_IFACE}" ]
    then
      eerror "Please make sure that /etc/conf.d/net has \$iface_$IFACE set"
      return 1
  fi
}

setup_env() {
    # No reason to check these multiple times in the file
    iface_IFACE="$(eval echo \$\{iface_${IFACE}\})"
    dhcpcd_IFACE="$(eval echo \$\{dhcpcd_${IFACE}\})"
    inet6_IFACE="$(eval echo \$\{inet6_${IFACE}\})"
    alias_IFACE="$(eval echo \$\{alias_${IFACE}\})"
    status_IFACE="$(ifconfig | gawk -v IFACE="${IFACE}" '/Link/ { if ($1 == IFACE) print "up" }')"
    if [ -x `which iwconfig` ]; then
        wireless_IFACE="$(iwconfig 2&gt;/dev/null | gawk -v IFACE="${IFACE}" '/ESSID/ { if ($1 == IFACE) print "yes" }')"
    fi
    wireless_IFACE=${wireless_IFACE:-"no"}
    if [ -x `which mii-tool` ]; then
        link_IFACE=$(mii-tool ${IFACE} 2&gt;/dev/null | gawk '{print $2}')
    fi
    link_IFACE=${link_IFACE:-"yes"}
}

setup_wireless() {
    # Reset to some defaults
    iwconfig $IFACE mode Managed
    iwconfig $IFACE rate auto
    iwconfig $IFACE key off
    # iwconfig $IFACE rts off
    # iwconfig $IFACE frag off
    iwconfig $IFACE essid any
    # Initiate a scan
    ifconfig $IFACE up
    # Wait for a response
    sleep 2
    # Find known access points
    for AP in `iwlist ${IFACE} scan 2&gt;/dev/null | grep ESSID | awk -F: '{print $2}' | sed 's/[-"]//g'`; do
        if [ -z ${essid_AP} ]; then
            essid_AP="$(eval echo \$\{essid_${AP}\})"
            if [ ! -z ${essid_AP} ]; then
                # setup variables
                key_AP="$(eval echo \$\{key_${AP}\})"
                iface_IFACE="$(eval echo \$\{iface_${AP}\})"
                if [  "$(eval echo \$\{gateway_${AP}\})" != "" ];
                then
                    gateway="${IFACE}/$(eval echo \$\{gateway_${AP}\})"
                fi
            fi
        fi
    done
    # Bring interface down to apply changes
    ifconfig $IFACE down
    #ewarn "Setting wireless parameters ${essid_AP} and ${key_AP}"
    iw_param=""
    if [ ! -z ${essid_AP} ]; then
        iw_param="essid ${essid_AP}"
    fi
    if [ ! -z ${key_AP} ]; then
        iw_param="${iw_param} key ${key_AP}"
    fi
    iwconfig ${IFACE} ${iw_param}
    # Bring the interface up
    ifconfig $IFACE up
    # Wait for the system to associate
    #    repair below 20060326 by 2310
    #    while [ `iwconfig $IFACE | awk '/\&lt;..:..:..:..:..:..\&gt;/{print}' |
    #    sed 's/^.*\&lt;\(..:..:..:..:..:..\)\&gt;.*$/\1/g'` = FF:FF:FF:FF:FF:FF ]; do
    while [ x$ACCESS_POINT_CHECK_VALUE = x -o x$ACCESS_POINT_CHECK_VALUE = xFF:FF:FF:FF:FF:FF ]; do
       LC_NUMERIC=C sleep 0.5
       ACCESS_POINT_CHECK_VALUE=\
       `iwconfig $IFACE | awk '/\&lt;..:..:..:..:..:..\&gt;/{print}' | sed 's/^.*\&lt;\(..:..:..:..:..:..\)\&gt;.*$/\1/g'`
    done
    return 0
}

start() {
    local retval=0
    setup_env
    checkconfig || return 1
    if [ ${wireless_IFACE} == "yes" ]; then
        ebegin "Detecting network for ${IFACE}"
        setup_wireless
        eend 0
    fi
    ebegin "Bringing ${IFACE} up"
    if [ ${link_IFACE} == "no" ];then
        retval=1
        eend ${retval} "Failed to bring ${IFACE} up"
        return ${retval}
    fi
    if [ "${iface_IFACE}" != "dhcp" ]
    then
        /sbin/ifconfig ${IFACE} ${iface_IFACE} &gt;/dev/null || {
            retval=$?
            eend ${retval} "Failed to bring ${IFACE} up"
            return ${retval}
        }
        # ifconfig do not always return failure ..
        /sbin/ifconfig ${IFACE} &amp;&gt; /dev/null || {
            retval=$?
            eend ${retval} "Failed to bring ${IFACE} up"
            return ${retval}
        }
    else
        # Check that eth0 was not brough up by the kernel ...
#       if [ "${status_IFACE}" != "up" ]
#       then
            /sbin/dhcpcd ${dhcpcd_IFACE} ${IFACE} &gt;/dev/null || {
                retval=$?
                eend ${retval} "Failed to bring ${IFACE} up"
                return ${retval}
            }
#       fi
    fi

    ip_address=$(ifconfig ${IFACE} | grep -m1 -o 'inet addr:[^ ]*' | cut -d: -f2)
    [[ -n ${ip_address} ]] &amp;&amp; einfo "  ${IFACE} received address ${ip_address}"



    eend 0

    if [ -n "${alias_IFACE}" ]
    then
        local x=""
        local num=0
        local aliasbcast=""
        local aliasnmask=""

        ebegin "  Adding aliases"
        for x in ${alias_IFACE}
        do
            aliasbcast="$(eval echo \$\{broadcast_${IFACE}\} \| awk \'\{ print \$$((num + 1)) \}\')"
            if [ -n "${aliasbcast}" ]
            then
                aliasbcast="broadcast ${aliasbcast}"
            fi

            aliasnmask="$(eval echo \$\{netmask_${IFACE}\} \| awk \'\{ print \$$((num + 1)) \}\')"
            if [ -n "${aliasnmask}" ]
            then
                aliasnmask="netmask ${aliasnmask}"
            fi

            ebegin "    ${IFACE}:${num}"
            /sbin/ifconfig ${IFACE}:${num} ${x} \
                ${aliasbcast} ${aliasnmask} &gt;/dev/null
            num=$((num + 1))
            eend 0
        done
        save_options "alias" "${alias_IFACE}"
    fi

    if [ -n "${inet6_IFACE}" ]
    then
        local x=""
        ebegin "  Adding inet6 addresses"
        for x in ${inet6_IFACE}
        do
            ebegin "    ${IFACE} inet6 add ${x}"
            /sbin/ifconfig ${IFACE} inet6 add ${x} &gt;/dev/null
            eend 0
        done
        save_options "inet6" "${inet6_IFACE}"
    fi

    if [ -n "${gateway}" ] &amp;&amp; [ "${gateway%/*}" = "${IFACE}" ]
    then
        ebegin "  Setting default gateway"
        # First delete any existing routes if it was setup by kernel ..
        /sbin/route del default dev ${gateway%/*} &amp;&gt;/dev/null
        /sbin/route add default gw ${gateway#*/} dev ${gateway%/*} \
            netmask 0.0.0.0 metric 1 &gt;/dev/null || {

            local error=$?
            ifconfig ${IFACE} down &amp;&gt;/dev/null
            eend ${error} "Failed to bring ${IFACE} up"
            stop
            return ${error}
        }
        eend 0
    fi

    # Enabling rp_filter causes wacky packets to be auto-dropped by
    # the kernel
    if [ -e /proc/sys/net/ipv4/conf/${IFACE}/rp_filter ]
    then
        echo 1 &gt; /proc/sys/net/ipv4/conf/${IFACE}/rp_filter
    fi
    # If started by hotplug, this doesn't get done.
    # perhaps the right fix is in hotplug
    ln -sf /etc/init.d/net.${IFACE} /var/lib/init.d/started/net.${IFACE}
}

stop() {
    local myalias="$(get_options alias)"
    local myinet6="$(get_options inet6)"
    local myinet6="$(get_options inet6)"
    local ip_address=$(ifconfig ${IFACE} | grep -m1 -o 'inet addr:[^ ]*' | cut -d: -f2)

    setup_env

    ebegin "Bringing ${IFACE} down"

    # Also down the inet6 interfaces
    if [ -n "${myinet6}" ]
    then
        local x=""
        for x in ${myinet6}
        do
           /sbin/ifconfig ${IFACE} inet6 del ${x} &gt;/dev/null
        done
    fi

    # Do some cleanup in case the amount of aliases change
    if [ -n "${myalias}" ]
    then
        local x=""
        local num=0
        for x in ${myalias}
        do
            /sbin/ifconfig ${IFACE}:${num} down &gt;/dev/null
            num=$((num + 1))
        done
    fi

    if [ "${iface_IFACE}" = "dhcp" ]
    then
       local count=0
#      while /sbin/dhcpcd -k ${IFACE} &amp;&gt;/dev/null &amp;&amp; [ "${count}" -lt 15 ]
       while [ `/sbin/dhcpcd -k ${IFACE} &amp;&gt;/dev/null` ] &amp;&amp; [ "${count}" -lt 9 ]
       do
        # Give dhcpcd time to properly shutdown
        sleep 1
        count=$((count + 1))
       done
       if [ "${count}" -ge 9 ]
       then
        eerror "Timed out trying to stop dhcpcd"
       else
        [[ -n ${ip_address} ]] &amp;&amp; einfo "  ${IFACE} released address ${ip_address}"
       fi
     else
        /sbin/ifconfig ${IFACE} down &gt;/dev/null
     fi
     eend 0
}


# vim:ts=4
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.2310.net/archives/206/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LinuxでCD-R/DVD+-R(RW)を焼く</title>
		<link>http://blog.2310.net/archives/204</link>
		<comments>http://blog.2310.net/archives/204#comments</comments>
		<pubDate>Tue, 30 Dec 2008 13:57:27 +0000</pubDate>
		<dc:creator>2310</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://k2310.s332.xrea.com/blog.2310.net/?p=204</guid>
		<description><![CDATA[LinuxでCD-R(RW)やCD-R/DVD+-R(RW)を扱うためのメモ WAVファイルを作成 CD/DVDから $ cdparanoia -B "1-3" # cdparanoia -B "1-" -B ... トラック ISOファイルを作成 CD/DVDから $ dd if=/dev/cdrom of=./cdimage.iso 特定のディレクトリ下のデータ $ mkisofs -r -J -o image.iso sourcedir $ mkisofs -r -J -udf -o image.iso sourcedir $ mkisofs -r -J -udf -print-size -o image.iso sourcedir -r ... Rock Ridge[Unixでロングファイル名を有効に] -J ... Joliet形式[Windowsでロングファイル名を有効に] -udf... DVD形式 -print-size [...]]]></description>
			<content:encoded><![CDATA[<p>LinuxでCD-R(RW)やCD-R/DVD+-R(RW)を扱うためのメモ</p>

<p><span id="more-204"></span></p>

<h4>WAVファイルを作成</h4>

<h5>CD/DVDから</h5>

<pre><code>$ cdparanoia -B "1-3"
# cdparanoia -B "1-"
-B ... トラック
</code></pre>

<h4>ISOファイルを作成</h4>

<h5>CD/DVDから</h5>

<pre><code>$ dd if=/dev/cdrom of=./cdimage.iso
</code></pre>

<h5>特定のディレクトリ下のデータ</h5>

<pre><code>$ mkisofs -r -J -o image.iso sourcedir
$ mkisofs -r -J -udf -o image.iso sourcedir
$ mkisofs -r -J -udf -print-size -o image.iso sourcedir
-r ... Rock Ridge[Unixでロングファイル名を有効に]
-J ... Joliet形式[Windowsでロングファイル名を有効に]
-udf... DVD形式
-print-size ... サイズの確認
</code></pre>

<h4>書き込み</h4>

<h5>ISOファイルの書き込み</h5>

<pre><code>$cdrecord -v dev=/dev/hdc hoge.iso
$growisofs -dvd-compat -Z /dev/dvd=image.iso
-dvd-compat ... 追記不可とする
-Z ... はじめから
</code></pre>

<h5>WAVファイル</h5>

<pre><code>$cdrecord -v dev=/dev/cdrom1 -audio padsize=0 wavfile...
padsize ... トラック間の無音部分？
</code></pre>

<h5>直接書き込み(DVD用)</h5>

<pre><code>$ growisofs -dvd-compat -Z /dev/cdrom -R -J src_dir/
</code></pre>

<h4>Link</h4>

<p>ぺんぎんとたわむれる日々 <a href="http://blogs.dion.ne.jp/terasan/archives/258368.html">http://blogs.dion.ne.jp/terasan/archives/258368.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.2310.net/archives/204/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ISOファイルをマウントする</title>
		<link>http://blog.2310.net/archives/202</link>
		<comments>http://blog.2310.net/archives/202#comments</comments>
		<pubDate>Tue, 30 Dec 2008 13:56:15 +0000</pubDate>
		<dc:creator>2310</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://k2310.s332.xrea.com/blog.2310.net/?p=202</guid>
		<description><![CDATA[すぐに忘れる。 #mount -t iso9660 -o loop FILE.iso /mnt/iso]]></description>
			<content:encoded><![CDATA[<p>すぐに忘れる。</p>

<pre><code>#mount -t iso9660 -o loop FILE.iso /mnt/iso
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.2310.net/archives/202/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LinuxでCD-R/DVD+-R(RW)を焼く</title>
		<link>http://blog.2310.net/archives/86</link>
		<comments>http://blog.2310.net/archives/86#comments</comments>
		<pubDate>Sat, 16 Aug 2008 07:35:23 +0000</pubDate>
		<dc:creator>2310</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://k2310.s332.xrea.com/blog.2310.net/?p=86</guid>
		<description><![CDATA[すぐに忘れてしまいます… WAVファイルを作成 CD/DVDから $ cdparanoia -B "1-3" # cdparanoia -B "1-" -B ... トラック ISOファイルを作成 CD/DVDから $ dd if=/dev/cdrom of=./cdimage.iso 特定のディレクトリ下のデータ $ mkisofs -r -J -o image.iso sourcedir $ mkisofs -r -J -udf -o image.iso sourcedir $ mkisofs -r -J -udf -print-size -o image.iso sourcedir -r ... Rock Ridge[Unixでロングファイル名を有効に] -J ... Joliet形式[Windowsでロングファイル名を有効に] -udf... DVD形式 -print-size [...]]]></description>
			<content:encoded><![CDATA[<p>すぐに忘れてしまいます…<span id="more-86"></span></p>

<h3>WAVファイルを作成</h3>

<h4>CD/DVDから</h4>

<pre><code>$ cdparanoia -B "1-3"
# cdparanoia -B "1-"
-B ... トラック
</code></pre>

<h3>ISOファイルを作成</h3>

<h4>CD/DVDから</h4>

<pre><code>$ dd if=/dev/cdrom of=./cdimage.iso
</code></pre>

<h4>特定のディレクトリ下のデータ</h4>

<pre><code>$ mkisofs -r -J -o image.iso sourcedir
$ mkisofs -r -J -udf -o image.iso sourcedir
$ mkisofs -r -J -udf -print-size -o image.iso sourcedir
-r ... Rock Ridge[Unixでロングファイル名を有効に]
-J ... Joliet形式[Windowsでロングファイル名を有効に]
-udf... DVD形式
-print-size ... サイズの確認
</code></pre>

<h3>書き込み</h3>

<h4>ISOファイルの書き込み</h4>

<pre><code>$cdrecord -v dev=/dev/hdc hoge.iso
$growisofs -dvd-compat -Z /dev/dvd=image.iso
-dvd-compat ... 追記不可とする
-Z ... はじめから
</code></pre>

<h4>WAVファイル</h4>

<pre><code>$cdrecord -v dev=/dev/hdc -audio padsize=0 wavfile...
padsize ... トラック間の無音部分？
</code></pre>

<h4>直接書き込み(DVD用)</h4>

<pre><code>$ growisofs -dvd-compat -Z /dev/cdrom -R -J src_dir/
</code></pre>

<h3>Link</h3>

<p>ぺんぎんとたわむれる日々 <a href="http://blogs.dion.ne.jp/terasan/archives/258368.html">http://blogs.dion.ne.jp/terasan/archives/258368.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.2310.net/archives/86/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

