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

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

2011-01-01から1年間の記事一覧

(.Net)デリゲートを自作するメリットがようやく分かってきた

今まで、例えばジェネリック型のListクラスのFindメソッドなどの述語として用いる部分でしかデリゲートは使っていませんでした。(それらも主に匿名メソッドを使ってきました。匿名メソッドを使った例は、(vb.net)VB.NetではList.Findとかのデリゲートの実装…

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

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

バッファロー製外付けHDD

3~5年前のバッファーロー製外付けUSB HDDがかなりの数ダメっぽそうなので廃棄処分することにしました。 大方、以下のようなシリーズのものです。 HD-HC HD-CS HD-HS HD-HES で、ケースを開けてびっくり。 上側にAC-DCインバータがあるんですが、そこのコン…

(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 {} \; 指…

LANの中にルータを多段で置くとリモートアシスタンスが繋がらない?

先日、知人宅のPCをリモートアシスタンスで操作指導する機会がありました。 が、これがなかなか曲者でした。 パーソナルファイアウォールを切ってもらったのに繋がらないのです。 この時3流PGから知人宅のネットワーク環境は以下のようになっていました。 知…

(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 ] …

ターミナルサーバで全ユーザのプリンタドライバの設定を変更する

ターミナルサーバ(WindowsServer2003 R2)でいくつかのプリンタドライバをインストールしているんですが、困ったことに初期値がカラーの片面かつ集約無し印刷になっています。 コスト削減のためにデフォルト値を白黒で集約有りの両面印刷にしたいと思っていま…

IEでExcelやWordのファイルをインライン表示する

普通、IEでExcel,Wordのファイルリンクを押下し、ダイアログで「開く」を押下するとOfficeが立ち上がり別表示されます。 しかし、インライン表示(IE内で表示)することもできるようです。 方法としてはフォルダオプションで拡張子を選択し、[詳細設定] → [同じ…

(HTML)指定時間後別ページにジャンプさせる

よくサイト移転で、「新しいサイトに移転しました。○秒後にジャンプします」みたいページを見かけます。 てっきり、Javascriptでやってるのかと思いましたが、下記のようなHTMLのメタタグでもできるようです。 http-equiv="refresh" content="秒数;URL=htt:/…

(ツール)WEBサイトのリンクチェックを行う

WEBサイトを更新していると、リンク先がリンク切れになってたりすることがあります。 一つ一つを追っかけるのは非常に労力掛かるので、その際のチェックに役立つツールです。 Website Explorer リンク先がリンク切れになっているかどうかを調べるツールです…

PukiWikiのサーバ移行

PukiWikiを別サーバに移行しました。 移行元と移行先環境は下記のとおりです。 WindowsXP Apache 2.0.52 PHP 5.0.2.2 ↓ CentOS 5.5(カーネル2.6.18) Apache 2.2.3 PHP 5.1.6 作業としては、pukiwikiのフォルダをコピーするだけでOKでした。 特に凝ったプラグ…

Subversion on apache で大量ファイルをコミットするとエラーになる

Subversion on apacheでTortoiseSVNから大量ファイルをコミットすると「サーバに接続できませんでした」というエラーになります。 環境は下記のとおりです。 OS:CentOS5.5 Apache 2.2.3 (OSバンドル品) Subvsersion:mod_dav_svn-1.4.2 で、原因は Apache の Ke…

PukiWikiで表組み全体を左寄せしたい

PukiWikiで普通に表組み(テーブル)を作成すると、中央寄せ(センタリング)の状態で表示されます。 1行の内容が多ければ見栄えはいいのですが、少ないと見栄えが悪くなります。(特にワイド画面でブラウザを最大化している時) ということで、左寄せする方法です…

(VBScript)ネットワークドライブを張る方法

ネットワークドライブをコマンドで割り当てるで net use コマンドを使ってネットワークドライブを張る方法を描きました。 これを下記のようにVBScriptで実行することができます。(ユーザ名とパスワード指定) Dim objShell Set objShell = WScript.CreateObje…

(Excel)配列数式で複数条件を指定する

(Excel)配列数式を使ってみたで、配列数式のことを書きました。 しかし、上記の場合は 0 より大きい値の最小値を求めたいということで、条件が一つでした。 この条件が複数になった場合について今回書きます。 今回はWindowsのパフォーマンスカウンタで2時間…

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

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