大きなファイルのscp

どうも接続が切れるとか、そういうときに、
http://platonic.techfiz.info/2008/07/unable-to-scp-large-files/
    
alias rscp="rsync --partial --progress --rsh=ssh --archive"
rscp filename host:path

とかすればいい感じにいく。いちいちaliasはらなくてもいいけど。

ssh -Xでログイン後、su(sudo)で他のユーザーに入ってXを飛ばす

とある理由でsudoで他のユーザーアカウントでXを飛ばすアプリケーションを使いたくなった。 例えば、
$ su
# cp /home/user1/.Xauthority /home/user2/.Xauthority
# chown /home/user2/.Xauthority user2
# chgrp /home/user2/.Xauthority group
# exit
$ sudo -u user2 soffice

で出来るみたい。

ふつうにsu -cでやれば問題なかった...

file chech

http://www.usupi.org/sysad/100.html
#!/bin/bash

cd $1
find . -type f -exec md5sum {} \; > /tmp/md5.out
cd -
cd $2
md5sum -c /tmp/md5.out | tee /dev/null && echo OK


CDを焼く

毎回調べてるのでログ
cdrecord --devices
cdrecord dev='/dev/scd0' -scanbus
cdrecord -v dev='/dev/scd0':4,1,0 speed=12 -dao Fedora-15-i686-Live-LXDE.iso

最後の一行のdevの引数は多分おかしい気がする。
だけど焼けるからきにしなーい


nfs

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/367usenfs.html
http://www.issociate.de/board/post/7594/nfs_problem.html

# emacs -nw /etc/exports
# service portmap start
# service nfs start

ソフトウェアraidを普通のフォーマットに戻す。

raid1がぶっ壊れたけどシステム込みでraidを組んでたのでosが立ち上がらないとかそういうときの緊急対処。
linuxのソフトウェアraid1は中身は単なるext3とかなので単体をmountすることもできる。
mount -t ext3 /dev/sda1 /mnt/hoge1

とか。
これで一応データは救出できるので片方壊れたら先にこうやって救出しておくともしものときに助かる。
さらに、恒常的にraid1じゃなくすることもできて、
http://www.ehow.com/how_7174057_remove-software-raid-linux.html
http://tldp.org/HOWTO/Software-RAID-HOWTO.html
http://d.hatena.ne.jp/shiwork/20110127/1296137474

一番上(それ以外は参考)の通りにやると、ひとまずraidじゃなくなる。
これは、superblockってのがあってこれを消してしまえば普通のフォーマットになるみたい。
あとはfdiskでその領域の種類?をfd(linux raid)から83(linux)に変更する。
fdiskの作業は調べればわかるので割愛。
あとはfstabを編集したり。
これでなんだか片方のhddのみを復活させて環境復帰できた。
paragonとかimage copyソフトはlinux raidに対応してないっぽい(ext4がいけなかったかもしれないが)し、
何だかんだで知識が不十分なので普通にrcyncでバックアップが楽な気がしてきた。

ちなみに南方くんの場合はswap領域もraidしてて、復旧時にswap領域がおかしいと言われてマウントできなかった。
これはmkswapってコマンドを使えばフォーマットしてくれて、正常になった。

hddの識別番号UUID

UUIDがhddのためなのかは知らないけどhddを指定するための固有番号が存在する。
これでいろいろ指定されていることが多いが、fstabもこれで書いた方が都合がいいことがある
(sdaとかはsataケーブルの挿す場所とかhddの数で変わるので)。
これを調べる方法に、
blkid, ls -la /dev/disk/by-uuid, tune2fs
等がある。
blkidは何か情報が古い?感じがある。更新しないといけないのかもしれない。
/dev/disk/by-uuidを見るのが手っ取り早い感じ。
tune2fsは情報がいろいろあるがほとんどわからない。

ubuntu

command-not-found /etc/bash.bashrc

makefile

make Target=test
とか書けばTargetという変数をコマンドラインから指定できる。
プログラム名だけ違うものをちょこちょこコンパイルする時は便利かも。

キーボードショートカット

LXDEをいれたけど、.config/openbox/lxde-rc.xmlを編集すればいけるっぽい。

dir移動

pushd, popdはたまに使いどころがある。 なんらかの理由でこれが使えないときは、
pwd_temp=`pwd`
cd ******
************
cd $pwd_temp
unset pwd_temp

とすればよい。

scp


scpでコピーがある日突然できなくなった。
何か変になったのかと思ってたら、 どうも.bashrcにネイティブなコマンドがかかれてると そこでscpが終了してしまうみたい。
というよりも、.bashrcからの返答にどう対処していいか困ってしまうみたい。
.bashrcにecho何とかとか書いてたんだけどどうしよう。。。
http://osdir.com/ml/network.openssh.devel/2003-02/msg00194.html

非常に良くない気がする、とりあえず回避方法を発見。
標準出力に出力するといかんみたいなので、 エラー出力に出力してみた。
echo "aaa" 1>&2
これで、echoとかは端末立ち上げたときに見えるけど、scpは失敗しない。
pwd 1>&2
とかもok。

これだと気持ち悪いので、bash環境下では、
if [ "${SSH_CONNECTION}" = "" ]; then
echo "aaa"
ls
else
:
fi
とかでもいける。 これは、sshを使ったときにSSH_CONNECTIONという変数が定義されること を利用したもの。
変数が定義されてないときは真になり、 定義されてるときは偽になる。

MAKEFLAGS

export MAKEFLAGS="-j4"
でmakeするときに勝手に4コアでのコンパイルになるはず。