Linux

Linux Tips : $マークには気をつけろ

こんなことは熟練プログラマには当たり前のことかもしれませんが、ちょっとはまってしまったのでメモしておきます。 やりたかったこと 簡単にいうと、こういうことがやりたかったわけです。 Dir.glob("#{@dir}*").each do |path| if system("sendmail -t デ…

ftpサーバを立てる(おまけ)

自宅サーバの難点として外部からのテストがやり辛いということがあります。ドメイン名を指定してもルータが勝手にアドレス解決してしまうので、内内のアクセスになってしまい、本当に外部からアクセスできるのかが不安なところです。 プロキシの利用 そうい…

ftpサーバを立てる(設定)

やっと proftpd がインストールできたので、設定を調整することにします。設定ファイルは /etc/proftpd/proftpd.conf です。 proftpd.conf 追加変更したところのみ抜粋です。 $ e /etc/proftpd/proftpd.conf UseIPv6 off ServerName "FTP Server" DefaultRoo…

ftpサーバを立てる(続き)

proftpd(1.3.0)をインストールして日本語変換パッチを当てるという方針でいきます。 proftpd(1.3.0)の取得 Ubuntu hardy(8.04)で普通に apt-get source proftpd-dfsg=1.3.0-24ubuntu1 とかやっても「ソースパッケージが見つかりません」というエラーが出るの…

ftpサーバを立てる

お仕事のWEBサイトを管理することになったので、自宅サーバ(5-55.jp)にVirtualHostを追加することにしました。それ自体はなんら問題はないのですが、自分以外のメンバーにもこのWEBサイトのアップロードができるようにしないといけないので、さて、どうしよ…

cron(crontab)の簡単な使い方

あるプログラムで「loop do ???; sleep 1800 end」みたいなことを書いてて、「これっておかしくないか?」とハタと気がついたわけです。なにも無限ループを回さなくたって、cronに任せちゃえばいいじゃないか。 cronの設定確認 「crontab -l」で現在の設定が…

バックグラウンドプロセス(ジョブ)の管理

ログインして対話的に使う分にはなんら問題はないのですが、ずっと動かしっぱなしのプロセスはどうするのかな、という疑問が出てきました。動かしてるプロセス分ターミナルを立ち上げてるというのも現実的じゃないし、screen で複数プロセス動かすのもありか…

Apacheのログ

しばらくUbuntuを触ってなくて、「Apache、大丈夫かなぁ?」と思うことってありますよね、ありますよ、ハイ。そういうとき、うる覚えの頭で「Apacheのログって確か /var/log だったよね」と「la /var/log」(alias la='ls -alg --color=auto')なんてやると、/…

時刻の合わせ方

サーバの時刻を定期的に合わせないとまずいんじゃないかなと思ってやったこと。 ntpdate $ sudo /etc/network/if-up.d/ntpdate とりあえず手動であわせてみる。レスポンスが返らないのでいいかどうかわからない。設定ファイルをいじる。 $ sudo nano /etc/de…

ログの見方

サーバ運用上、重要そうなログを確認してみる。 主なログ /var/log/auth.log 認証に関するログ /var/log/syslog 認証を除くほぼすべてのログ /var/log/daemon.log 各種デーモンが出力するログ /var/log/messages 認証、メール、cron、デーモンを除くほぼすべ…

screen

1つのターミナルの中で複数のターミナルを立ち上げてくれる。いままで複数のターミナル画面を立ち上げるためにその分だけ「Tera Term」の接続(Window)を起動していたんだけど、これを使うと1つの接続で画面切替ができる。激しく便利。 インストール $ sudo a…

findでrm

findで検索したファイルをすべて削除したいというときは、こういうふうにやる。 findのexecオプション $ find . -name *product* -exec rm -i {} \; rm: remove regular file `./test/unit/product_test.rb'? y rm: remove regular file `./test/fixtures/pr…

svnユーザでssh接続

サーバに「subversion」を入れたので「svn」ユーザでログインしたくなる。さて、どうするか。 サーバ側の準備 「svn」ユーザのホームに「.ssh」ディレクトリを作って公開鍵を準備しておく。 $ su svn ← ユーザ切替 svn:/home/xxx$ cd ~ ← svnのhomeへ svn:~$…

ユーザをグループに追加するとき、やってはいけないこと

Ubuntuでは基本的に「root」ユーザでのログインは許していなくて、管理者権限が必要な作業は、インストール時に設定する管理ユーザが「sudo」コマンドで実行するようになっています。以下、この管理ユーザのグループを変更しようとして大変なことになった記…

ユーザをグループに追加

「subversion」用ユーザ「svn」でリポジトリを作成して、通常の作業は管理ユーザ「xxx」でやろうとすると、Permission deniedエラーがでる。だったら、管理ユーザを「svn」グループに追加しておいてあげればいいんじゃない? 以下、大はまりした記録。 ユー…

ディレクトリを階層表示

Ubuntuサーバをターミナルから使っていると、不便も不便と思わなくなって、なんでもかんでもコマンドラインで打つようになるので、慣れというのは恐ろしいなぁと思いますが、たまに、Windowsのエクスプローラって便利だよね、と思うこともあります。そこで、…

irbを入れる

Rubyを入れたから、てっきり一緒に入っているのかと思っていた「irb」ですが入っていなかったので入れときます。 インストール xxx:~$sudo apt-get install irb [sudo] password for xxx: 以下のパッケージが新たにインストールされます: irb アップグレード…

sort

la使ってて、更新日付順に見たかったから調べた。 主なオプション -r 降順 -k? フィールド指定(?は1から)で末尾まで -k?,? フィールド指定(?は1から)で範囲を限定(-k5,6は第5、第6フィールドのみ) 使い方 $ la | sort -k5 -r -rw-r--r-- 1 bind 2164 2008-05…

bashの使い方その2

いくつか「.bashrc」の設定も増えてきたのでまとめ。 .baskrc $e ~/.bashrc alias la='ls -alg --color=auto' alias e='sudo nano' alias s='sudo' alias scr='screen -UxR' alias pathlist='echo -e ${PATH//:/\\n}' # PATHのリスト表示 alias rmi='rm -i' …

bash関連

bashの変数 $ APPDIR=/home/www/2.5-55.jp ← 変数のセット $ echo $APPDIR ← 変数のRead(先頭に$をつける) /home/www/2.5-55.jp $1 引数($1,$2,$3...) $0 シェルスクリプトの名前 $# 引数の数 $$ シェルスクリプトのPID(プロセスID) bashでpause bashのなか…

curl

コマンドラインからHTTPの確認をしたかったので「curl」をインストールしました。 インストール xxx:~$ s apt-get install curl 以下の特別パッケージがインストールされます: libcurl3 以下のパッケージが新たにインストールされます: curl libcurl3 アップ…

bashの使い方

TAB補完 TABキーを2回入力するとコマンド一覧を表示してくれる。1つに絞れるところまで入力した場合はTABキーを1回入力するだけで残りの文字列を補完してくれる。 入力履歴 『Ctrl+r』キーでいままで入力した履歴を参照できる。このプロンプトが表示されるの…

ログの最後だけ表示したい

Linuxには便利なコマンドがありますね。これです、こういうことがしたかったんです。 tail $ tail /home/log/apache2/25access.log ファイルの末尾から指定した行数、表示してくれます。デフォルトは10行。 オプション -c N[k|m] 末尾からNバイト表示。Nの後…

プロンプトを変える

Ubuntu Serverデフォルトのプロンプトは『user@hostname:/curdir$』で、ホスト名のところはいらないんじゃないかなぁ、ユーザ名もなくてもいいくらいだけど、たまにrootで作業することもあるかもしれないから、これは残しておくとして、とりあえずホスト名は…

grepの使い方

grepの使い方 $ grep -r 'hogehoge' /home/* サブディレクトリ以下も再帰的に検索したいときが普通なので『-r』は必須。 オプション表 自分的に必要と思われるもののみ。 -c パターンを含む行数のみ表示 -h ファイル名表示。検索結果も表示 -i 大文字小文字…

GNU nanoの使い方

ごくごく簡単な本当に最小限の nanoの使い方です。 キー操作 ・Ctrl+O ファイルSAVE ・Ctrl+X 終了 ・Ctrl+^ マーク(選択開始) ・Ctrl+K カット(選択終了)。Ctrl+^で選択してCtrl+Kでカット。コピーはわからず。 ・Ctrl+U ペースト ・Ctrl+W 検索。次を検索…

再起動とシャットダウン

再起動 $ sudo reboot『sudo shutodown -r now』でも可。 電源断 $ sudo poweroff『sudo shutdown -h now』でも可。

sshで接続

Ubuntu Serverインストール時にOpenSSHを入れたので、Windowsのターミナルからリモートログインできるようにする。そうするとウォンウォンと五月蝿いファンの回るマシンを裏の方に隠してしまえる。 Windows版ターミナルソフトのインストール 『UTF-8対応Tera…

ファイル(ディレクトリ)の削除

ファイル(ディレクトリ)を削除する $ rm file* $ rm -vr dir1-f 存在しないファイルがあってもエラーを返さない -i 削除の確認(yで実施) -r ディレクトリを中身ごと再帰的に削除 -v 経過表示ファイル名には'*'や'?'が使える。ディレクトリの削除は『rmdir』…

ファイルのコピー

ファイルをコピーする $ cp file1 file2 $ cp file1 file2 file3 /tmp $ cp -vr dir1 /tmp -f 確認なしで上書き(デフォルト) -i 上書きの確認(yで実施) -l ハード・リンクの作成(ディレクトリは除外) -p 元ファイルの属性(タイムスタンプ等)を保持 -r ディレ…