3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

Linux

(Linux)LVMパーティションを縮小する方法

CentOS(RedHat系)ではデフォルトでインストールを行うとパーティションにLVMが用いられます。 LVMを使うと複数のディスクにまたがってボリュームを作成できたり、ボリュームのスナップショットも簡単にとれたり便利なんですが、いざ障害がおきたり今回のよう…

(Linux)LVMで構築されたパーティションをマウント

Hyper-VでCentOSを仮想サーバとして運用しているんですが、そのバックアップされた仮想ハードディスクの中身を確認する必要が出てきました。 とりあえず自PCのVirutalBoxでFedora13を入れて、バックアップされた仮想ハードディスク(vhd)を増設ディスクとさせ…

(Linux)ハードディスクを追加して、FAT32のパーティションを作る方法

Hyper-V上で動かしているLinux(CentOS5.5)で新しい仮想ハードディスクを追加してFAT32のパーティションを作る必要が出てきたので、その時のメモです。 新規仮想HDDを追加して、fdisk -l でディスク情報をみると下記のように出力されます。 Disk /dev/sdb doe…

(Linux,Hyper-V)カーネルアップデート時に自動的にLinuxISを再適用する方法

(Linux,Hyper-V)LinuxISv2.1をいれたLinuxでカーネルアップデートするとカーネルパニックの最後のほうで書きましたが、カーネルバージョン更新時に自動的にLinuxISを再ビルドと配置する方法です。 参考先は、山市良のえぬなんとかわーるど: Linux IS v2.1 と…

(Linux,Hyper-V)LinuxISv2.1をいれたLinuxでカーネルアップデートするとカーネルパニック

Windows Server 2008 R2 上の HyperV 2.0 で、redhat系ディストリビューションのCentOS5.5を動かしています。 CentOSには、Linux統合コンポーネントである Linux Integration Services(Linux IS)v2.1 (旧:LinuxIC)をいれています。 この状態で yum で全パッ…

(Linux)yumで特定のパッケージはアップデート対象にさせない方法

CentOS 5.5です。 yum update 時にカーネルだけはアップデート対象にさせない必要が生じました。 そのよう場合、/etc/yum.conf の[main]セクションにに下記のようにアップデートしたくないパッケージ名設定してやればいいようです。 [main] exclude=kernel* …

(Linux)MySQLのバックアップをシェルスクリプトで自動的に行う

MySQLのバックアップを行うには、大きく mysqlhotcopy を使う方法と mysqldump を使う方法があります。 mysqlhotcopy はテーブルをロックしてデータベースのファイルがあるディレクトリをそのままコピーする方法です。 ただし、MyISAM と ARCHIVE テーブルで…

(Linux)Subversionのバックアップ処理をhot-backup.pyを使って行う

当初、Subversionのバックアップは普通にリポジトリのファイルをシェルスクリプトでコピー(cp)するだけで考えてました。 しかし、そのままコピーしたのではまずいようです。 リポジトリ領域にアクセスするプロセスがなければ通常コピーでも構わないのですが…

(Linux)指定日後の日付を知りたい

現在の日次から、○日後や○日前の日付を知る方法ですが、date コマンドが有用です。 下記のようにすればいいようです。現在5/9で、20日前の日付を求めたいとき。 # date 2011年 5月 9日 月曜日 18:51:10 JST # date --date '-20day' +%Y%m%d 20110419 参考: …

(Linux)指定したディレクトリで一番新しいファイルを探す

シェルスクリプトの中で、任意のディレクトリの中で一番新しいファイルを探す方法です。 シェルスクリプトで最新のファイル名を取得するを参考にさせてもらいました。 まぁ、参考というよりそのままですが、下記のように、ls -lt でソートし、その一番上の行…

(Linux)指定した日時より更新日時が古いファイルを削除する

ファイルの更新日時(mtime)が指定した日時より古ければ削除する方法です。 find コマンドを使うと簡単にできます。 下記のような感じになります。 指定したディレクトリ内で7日より古いもの削除 find /home/hoge/tmp -mtime +7 -type f -exec rm -f {} \; 指…

(Linux)コマンドを連結して行う「;」「&」「&&」「||」の違い

シェルスクリプトにおいて、複数のコマンドを連結して処理するときに、「;」「&」「&&」「||」が使えるですんが、それぞれがどのような動きするかまとめてみました。 ;(セミコロン) 前のコマンドが終わり次第、次のコマンドが実行される。(3つ以上のコマンドを連結し…

(Linux)パスを含む変数をdirname,basenameしてコマンドに渡したい

((Linux)シェルスクリプトで自身の絶対パスを取得したいも似たような記事になってます。) 例えば下記のようなシェルスクリプトがあるとします。 BKFILE="/var/bkup/user.tgz" BKSRC="/home/hoge/" BKSRC_UP=`dirname ${BKSRC}` BKSRC_NAME=`basename ${BKSRC…

(Linux)tarを使うときは相対パスで...

tarで絶対パスでアーカイブすると、展開(解凍)時もフルパスで展開されます。 そのため、絶対パスでアーカイブされたファイルを不用意に展開すると既存のファイルを上書きしてしまうわけですね。 (Redhat系の CentOS5 とかだとそれを防ぐために、パスの先頭の…

(Linux)バックアップシェルスクリプトで世代管理2

(Linux)バックアップシェルスクリプトで世代管理1で、世代管理機能付きのバックアップシェルスクリプトを書きました。 しかし、いざ運用を始めると数ヶ月前のデータがほしいなんてことも想定されます。 ということで、下記のようなバックアッププランを立て…

(Linux)バックアップシェルスクリプトで世代管理1

ずいぶん前の記事、cron & シェルスクリプト でバックアップ用のシェルスクリプトを書きました。 設定ファイル(bksrc.dat)にバックアップ元ディレクトリパスと、バックアップ時の接頭ファイル名を定義し、ファイル名に日付を埋め込んでtgzファイルにバックア…

(Linux)シェルスクリプトでメールを送信する

メール送信を行うシェルスクリプトです。 スクリプト:シェルスクリプト:メール送信|ADSL + 自宅 Linux サーバを参考にさせてもらいました。(ほぼそのままですが...) 汎用的に使えるように、引数1 に送信先メールアドレス、引数2 に件名、引数3 に本文を指…

(Linux)シェルスクリプトで変数に改行を含めたい

シェルスクリプトの変数に改行を含む文字列を入れる方法です。 VAR="test1 test2 test3 " echo "${VAR}" ←改行含まれる test1 test2 test3 echo ${VAR} ←これだと改行コードが無視される。 test1test2test3 注意として、改行含む変数を使うときに、クォーテ…

(Linux)シェルスクリプトで自身の絶対パスを取得したい

シェルスクリプトで、自分自身のスクリプトの絶対パスを取得する方法ですが、下記のようにするといいようです。 #!/bin/sh #↓自身のスクリプトの絶対パス(ファイル名無し) echo $(cd $(dirname $0);pwd) #↓自身のスクリプトの絶対パス(ファイル名有り) echo …

(Linux)ディレクトリのサイズを知りたい

Windowsだとフォルダのプロパティで使用サイズが分かるわけですが、Linuxでは du コマンドでわかるようです。 ・指定したディレクトリ以下のすべてのディレクトリ毎の使用サイズ(KB)を表示 # du ディレクトリパス(パスを省略すると現在のディレクトリ) 80 ./…

(Linux)Hyper-V環境でntpdによる時刻同期がうまく動かない

(Linux)ntpdを使った時刻同期方法で、ntpdによる時刻同期方法を書きました。 しかし、Hyper-V上で動いているLinux(CentOS5.6)でntpdがうまく動かないのです。 (Hyper-V自体にもホストOSとゲストOSの時刻同期機能があり、Linux-IS2.1でも対応してるらしいです…

(Linux)ntpdを使った時刻同期方法

(Linux)ntpdateを使った時刻同期方法では、ntpdate コマンドを使って時刻同期してました。 ntpdateは一気に時間を変える方法なので、サーバにはあまり望ましく有りません。 ということで、CentOS5.5で徐々に時刻をあわせる ntpd を使った時刻同期をしてみま…

(Linux)シェルスクリプトの論理短絡演算子

シェルスクリプトで数値が入った2つの変数を比較したいと思ってます。 しかし、片方の変数は空になる可能性も有ります。 ということで、当初下記のような条件文を書いていました。 value1= value2=20110410 if [ -n "$value1" ] -a [ $value1 -lt $value2 ] …

Subversion(Apache,Linux)で認証にActiveDirectoryを使う

LinuxでSubVersionを構築しEclipse Subversive から使うではSubversionの認証としてBasic認証を使ってましたが、Windowsドメインを建てているということで、ActiveDirectoryを使って認証してみました。 環境はApache2.2 , CentOS5.5で、ドメインコントローラ…

(Linux)LogwatchのログメールをGmailに送りたい

Redhat系Linux CentOS には Logwatch というログ監視ツールが入っており、毎日の結果をCentOS内部の root ユーザにメールの形で送っています。 しかし、いちいちLinuxサーバにログインしてrootのメール見るは鬱陶しいということで、このroot宛てのサーバ内部…

(Linux)EcoLinux10.04で一時的にテキストモードログインにしたい

EcoLinuxで一時的にテキストモードログオンする方法です。 EcoLinuxはUbuntuベースなのでUbuntuと同じく、ログイン画面で Ctrl+Alt+F1 を押下すればいいようです。 参考: Ubuntuをテキストモードでログインするには… - アスのBlog - 楽天ブログ ↑恒久的にテ…

(Linux)EcoLinux10.04でCitrix Linux Clientを入れてみた

社内でCitrix Presentation Server4.5(旧 MetaFrame , 現 XenApp)を使い、各ユーザはWindowsPCから Web Interface を経由して Citrix Presentation Server 上のアプリケーションを使ってます。 これをLinuxからも使えるのか検証してみました。 ディストリビ…

(Linux)update-apt-xapiとかいうのがCPU100%使う

Ubuntuベースの EcoLinux10.04 で、起動後CPU100%なので、topコマンドで確認してみました。 すると、update-apt-xapi というのがどうやらCPUを食いつぶしていたようです。 おそらくパッケージ関係の更新プロセスでしょうかね。 下記のようにすれば無効にでき…

(Linux)Firefox等幅フォントで全角マイナス記号が。。。

Ubuntuベースの EcoLinux10.04 です。 Firefox3.6.3で、全角マイナス記号「-」を等幅フォント表示してらどうもおかしいのです。 試しに下記のようなHTMLファイルをシフトJISで作って表示してみました。 最初が半角の「-」、次が問題の全角マイナス記号「-」、最…

(Linux)IPAフォントをいれてみた

Ubuntuベースの EcoLinuxにはIPAフォントをベースにしたTakaoフォントが入ってるんですが、プロポーショナルフォント(可変幅)しか入っていませんでした。 ということで、EcoLinux10.04 にIPAフォントを入れてみました。 IPAフォント配布サイトより、4書体パ…