Archive for the 'linux' Category

Linux:webdavを利用する

Ubuntuで使えるwevdavクライアントを探してもみつからない。
Linuxでwebdavに接続するにはmountコマンドを使うらしい。

マウント先のディレクトリを作成後、mount -t davfsでマウントする。
mountコマンドは大抵が実行することになっていると思う。
ユーザIDとグループIDを省略するとマウントを実行したユーザになるので
mount実行ユーザ以外でwebdavを利用したい場合はuid,gidを指定する。

sudo mkdir /media/webdav.hoge.com
sudo mount -t davfs webdavのURL /media/webdav.hoge.com -o uid=ユーザID,gid=グループID

webdavを利用したいユーザが複数要る場合はgroupで指定する。
sudo mount -t davfs webdavのURL /media/webdav.hoge.com -o uid=nobody,gid=グループID
Linux:グループの追加と設定

webdav接続先のパスワードを保存したい場合は/etc/davfs2/secretsを編集する
sudo vi /etc/davfs2/secrets
/etc/davfs2/secretsの一番最後に以下の形式でパスワードを書いて保存する。
/etc/davfs2/secrets
webdavのURL ユーザ名 パスワード

Linux:ファイルシステムのマウント

システムで利用するファイルシステムのエントリを変更するには/etc/fstabを編集する。

sudo vi /etc/fstab
/etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
proc        /proc       proc  defaults  0    0

※<dump>はdumpによるバックアップの対象となるか。(0は対象外)
※<pass>はfsckの対象となるか。(0は対象外)
/etc/fstabに記述したエントリはオプションnomoutが記述されていない限り、mount -a実行時(システム起動時含む)に全てマウントされる。

Ubuntu:vim-gnomeをインストールする

Ubuntuに初期インストールされているvimはフルーヴァージョンでは無いので以下のような問題がある。
・矢印キーの動きが変(UとかDが改行とともに入力される)
・syntax on などのコマンドが使えない
これらはvim-fullをインストールすれば直るらしい。


けれどもUbuntuのレポジトリにvim-fullという候補は無い。
vim-gnomeというパッケージを使うとのこと。

sudo apt-get install vim-gnome

Linux:グループの追加と設定

Linuxにグループを追加するにはgroupaddコマンドを使う。

groupadd グループ名
グループに所属するユーザを変更したい場合は/etc/groupを編集する。
sudo vi /etc/group
/etc/group
fsmount:x:1001:hoge , foo , bar
/etc/groupの書式は
グループ名:グループパスワード:グループID:メンバーリスト(ユーザID,区切り)
になっている。

Linux:コマンドプロンプトの書式を変更する

Ubuntuデフォルトのプロンプトはカレントディレクトリが深い階層になったとき、プロンプト表示でかなりの幅を取ってしまい見難いのでプロンプトの書式を変更した。

プロンプトの書式はPS1というシェル変数に設定する。
PS1とはPrompt Stringの1番目ということらしい。

.bashrcに以下のように記述する。

.bashrc
PS1=”[\u@\[\033[32m\]\h\[\033[0m\] \W]\$”

最後の\Wがポイントで、これはカレントディレクトリ名を表す。
ここか\wになっているとフルパスで表示されてプロンプトが長くなってしまう。

.bashrcを書き換えたら、
source .bashrc

Linux: CD/DVDからディスクイメージを作る

CD/DVDからディスクイメージを作る方法。

1.CD/DVD-ROMをマシンに挿入する。

2.自動的にマウントされる場合はアンマウントする。

3.ddコマンドでイメージを作成
対象がCD-ROMなら

dd if=/dev/cd of=image-name.iso
対象がDVDなら
dd if=/dev/dvd of=image-name.iso

とても簡単。感動。

作成したイメージをマウントするコマンドは
sudo mount -o loop /path/to/image-name.iso /mnt/disk0



crontabのエディター変更

うっかりeasiestなnanoを選んだら使い難かった。
以下のコマンドで再設定できる。

sudo update-alternatives --config editor

Linux:rsyncでファイル同期

まずrsyncコマンドの基本

rsync [option] [同期元ファイルパス] [同期先ファイルパス]

リモートサーバと同期するときはファイルパスの前に:で区切ってサーバ名またはIPアドレスを指定する
rsync [option] user@192.168.0.2:/tmp /tmp
※この例ではuserアカウントで192.168.0.2にアクセスしようとしているので、目的のサーバに接続した後、パスワードを聞かれる。
パスワードを答えると同期が行われる。

cron等で定期的に同期したい場合、このパスワード入力が面倒。
リモートのrsyncサーバにユーザを登録していれば--password-fileというオプションをつけてコマンドラインにパスワードを含めることができる。

rsyncサーバの設定

rsyncの設定ファイルを作成しする。
設定ファイルにはリモートでアクセスできる接続元や、ディレクトリ、ユーザの設定を書く。
/etc/rsync.conf
#
# Global options
#
uid = root
gid = root
use chroot = yes
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.0.1/24
hosts deny = *
dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png

#
# Module options
#
[remote1]
comment = rsync server
path = /tmp/remote1
auth users = remote_user1
secrets file = /etc/rsyncd.secrets
read only = no

[remote2]
comment = rsync server
path = /tmp/remote2
auth users = remote_user2
secrets file = /etc/rsyncd.secrets
read only = no

次にユーザのパスワードを設定する。
※ここで作成するユーザ(上記のrsync.confのremote_user1,remote_user2にあたる)はrsyncのユーザである。
Linuxに同じユーザを作成する必要は無い。

rsync.confで”secrets file”に指定したファイルを編集する。
/etc/rsync.secrets
remote_user1:password
remore_user2:password

※secrets fileのパーミッションは600にすること。それ以外のパーミッションでは認証できない。

以上でrsyncサーバの設定は終わり。サーバを起動するには
rsync --daemon --config=/etc/rsyncd.conf

rsyncユーザで接続

rsyncサーバに設定したユーザ、ディレクトリで同期できるかのテストは以下のようなコマンドで行う。
rsync -r /tmp/test remote_user1@192.168.0.2::remote1

パスワードを聞かれないようにするにはパスワードファイルを作成し、コマンドオプションでそのパスワードファイルを指定する。
rsync -r --password-file=/etc/rsync.passwd /tmp/test remote_user1@192.168.0.2::remote1
/etc/rsync.passwdにはパスワードを平文で書いてよい。但し、他のユーザにアクセスされない場所に置くこと。
またこのファイルもパーミッション600でなければ認証できないので注意

linux:GUIのvimをソースからインストール

vim7.2が使いたいのでソースからインストールした。

cd ~/local/src
wget ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-http://blog.mktime.com/wp-admin/post-new.phpextra.tar.gz
wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz
tar jxfv vim-7.2.tar.bz2
tar jxzv vim-7.2-extra.tar.gz
tar jxzv vim-7.2-lang.tar.gz
cd vim72/
mkdir patch
cd patch
wget ftp://ftp.vim.org/pub/vim/patches/7.2/7.2.*
cd ..
cat patch/7.2.* | patch -p0
GUIで使いたいので、GUIを有効にするconfigureオプションを指定する。
./configure \
--enable-multibyte \
--enable-xim \
--with-x \
--with-features=big \
--enable-perlinterp \
--enable-pythoninterp \
--enable-rubyinterp \
--enable-gui=gnome2

make

makeでエラーが出る。

os_unix.c:2641: error: ‘security_context_t’ undeclared (first use in this function)


selinux要るの?
yum install libselinux-devel

これでmake ,makeinstallまでいけたけど、vim -g で起動したらエラーが。

E25: GUIは使用不可能です: コンパイル時に無効にされています


configureログを確認すると確かに無効になっている。
checking --enable-gui argument“ GNOME 2.x GUI support
checking whether or not to look for GTK“ yes
checking --with-gtk-prefix argument“ no
checking --with-gtk-exec-prefix argument“ no
checking --disable-gtktest argument“ gtk test enabled
checking for gtk-config“ (cached) no
checking for gtk12-config“ (cached) no
checking for pkg-config“ (cached) /usr/bin/pkg-config
checking for GTKxn--version >= 2.2.0“ no
checking for GTKxn--version >= 1.1.16“ no
checking for X11/SM/SMlib.h“ (cached) yes
checking for X11/xpm.h“ (cached) yes
checking for X11/Sunkeysym.h“ (cached) yes
checking for XIMText in X11/Xlib.h“ yes
no GUI selected; xim has been disabled

gtk2が必要か。

sudo yum install gtk2-devel

gtk2をインストールしたあと、もう一度
./configure \
--enable-multibyte \
--enable-xim \
--enable-x \
--with-features=big \
--enable-perlinterp \
--enable-pythoninterp \
--enable-rubyinterp \
--enable-gui=gnome2

make
sudo make install

よし。完璧です。

linux:cronでcommand not found

cronで「/bin/sh: 行数: ユーザ名 command not found」というエラーが出たら、*が多いか、ユーザ別cronでユーザ名を書いてしまっている。

1つコマンドがずれているために起こるエラーである。

あとcronでありがちな失敗としてはcrondを再起動していない

# crondを再起動
/etc/init.d/crond restart

エラーメールが飛んできているのに気が付かない、などがある。
su [cronを実行するユーザ]
#メール確認
mailx

次ページへ »