2011年6月27日月曜日

コマンドプロンプト の RANDOM

ことのおこり

60台ほどの PC にちまちま再起動するタスクを登録したんだけれど,みんなおんなじ時間に再起動しちやうからちょっと幅を持たせたいなって。

RANDOM のつかいかた

%RANDOM%すればいいんだけれど…。

ぐぐる

教えて!Ziddyちゃん - WindowsのRANDOM関数を用いたバッチファイル なるページを発見。実験してみましょう…。

まずはコード。

test.cmd
@for /L %%I in (1,1,100) do @cmd /c rand.cmd
rand.cmd
@ECHO %TIME% %RANDOM% %RANDOM%
@for /L %%I in (1,1,300) do @DIR > NUL

そして,実行結果。

>test.cmd
17:24:13.66 280 7936
17:24:13.88 280 7936
17:24:14.11 284 18684
17:24:14.35 284 18684
17:24:14.56 284 18684
17:24:14.80 284 18684
17:24:15.02 287 29432
17:24:15.25 287 29432
17:24:15.49 287 29432
17:24:15.71 287 29432
17:24:15.94 287 29432
17:24:16.17 290 7413
17:24:16.39 290 7413
17:24:16.63 290 7413
17:24:16.85 290 7413
17:24:17.08 293 18161
17:24:17.31 293 18161
17:24:17.53 293 18161
17:24:17.77 293 18161
17:24:18.00 297 28910

 :

17:24:31.77 339 4799
17:24:32.00 342 15547
17:24:32.22 342 15547
17:24:32.44 342 15547
17:24:32.69 342 15547
17:24:32.91 342 15547
17:24:33.14 346 26296
17:24:33.38 346 26296
17:24:33.60 346 26296
17:24:33.81 346 26296
17:24:34.05 349 4276
17:24:34.27 349 4276
17:24:34.50 349 4276
17:24:34.74 349 4276
17:24:34.97 349 4276
17:24:35.19 352 15024
17:24:35.42 352 15024
17:24:35.66 352 15024
17:24:35.89 352 15024
17:24:36.11 355 25773
17:24:36.35 355 25773
…つかえない。

2011年6月21日火曜日

シェルスクリプトと相対パスとシンボリックリンク

シェルスクリプトと相対パスとシンボリックリンク

ことのおこり その 1

シェルスクリプト内に相対パスばりばり書いちゃってはまって。

ぐぐる

こんなページを発見。

こんな感じかな~?
ABS_DIR=`cd \`dirname $0\` && pwd`
 
. ${ABS_DIR}/../etc/hogehoge

ことのおこり その 2

作ったシェルスクリプトのシンボリックリンクを作って実行!

…あれ?

ぐぐる

こんなサイトを発見。

こんな感じ?
if [ -L $0 ]; then
        ABS_DIR=`cd \`dirname \\\`readlink -f $0\\\`\` && pwd`
else
        ABS_DIR=`cd \`dirname $0\` && pwd`
fi
 
. ${ABS_DIR}/../etc/hogehoge

きょうくん

  • シェルスクリプトに相対パスを書かない。
  • シェルスクリプトをシンボリックリンクにしない。

ProFTPd の DisplayFirstChdir ディレクティブ

logcheck さんからおてがみ

Jun 21 12:00:00 ftp-sv proftpd[xxxx]: warning: the DisplayFirstChdir directive is deprecated and will be removed in a future release.  Please use the DisplayChdir directive.
意訳:それってじだいおくれだよ♪

ぐぐる

便利な世の中だよね。

DisplauFirstChdir の昔の挙動が欲しい場合,オプション "true" を使用して下さい.
という訳で,こんな感じに変更でいいのかな?
--- proftpd.conf.org    2007-05-17 18:21:27.000000000 +0900
+++ proftpd.conf    2011-06-21 09:30:11.000000000 +0900
@@ -22,7 +22,7 @@
 TimeoutIdle    1200

 DisplayLogin    welcome.msg
-DisplayFirstChdir    .message
+DisplayChdir    .message true

 ListOptions    "-al"

 DenyFilter    \*.*/

2011年6月14日火曜日

チャーハン諸島のポータブル化

ちゃ~はん!

Twitter クライアント「チャーハン諸島」 - ぐま あーかいぶ って素敵なソフトがあるんだけれども,要Java なんだよね~。でも,ラーメン大陸も .net4.0(3.5?)いるしね~

jPortable

PortableApps には,jPortable - portable Java® runtime environment なんてものがあるんだよ。さっそくインストール。

ちゃーはんのさぎょう

rice_win を,P:/PortableApps にほうりこんで,rice.exe のとなりに rice_run.cmd …名前は何でもいいんだけれど… を作るよ。

SET PATH=..\CommonFiles\Java\bin\client
START rice.exe
あとは,このバッチをたたいてあげればおけ。

GIMPPortable で eps ファイルを開く そのに

どらいぶれたー

を書くなんて,すまーとぢゃないよね。

GIMPPortable.ini

GIMPPortable\Other\Source には GIMPPortable.ini ってファイルがある。くわしくは同じディレクトリにある Readme.txt を読んでもらうとして。

この GIMPPortable.iniGIMPPortable …ええと,GIMPPortable.exe のあるディレクトリにコピーして編集。

--- P:/PortableApps/GIMPPortable/Other/Source/GIMPPortable.ini    Tue Aug 26 03:25:22 2008
+++ P:/PortableApps/GIMPPortable/GIMPPortable.ini    Tue Jun 14 18:27:02 2011
@@ -2,7 +2,7 @@
 GIMPDirectory=App\gimp
 GTKDirectory=NONE
 SettingsDirectory=Data\settings
-GIMPExecutable=gimp-2.4.exe
+GIMPExecutable=..\..\..\gimpportableRun.cmd

 AdditionalParameters=

 # This is an example INI and will not work from it's present location.

gimpportableRun.cmd

GIMPPortable.ini と同じディレクトリに,gimpportableRun.cmd を作成。

SET GS_PROG=..\..\..\..\CommonFiles\GhostScript\gs9.02\bin\gswin32.exe
SET GS_DLL=..\..\..\..\CommonFiles\GhostScript\gs9.02\bin\gsdll32.dll
SET GS_LIB=..\..\..\..\CommonFiles\GhostScript\gs9.02\Resource\Init;..\..\..\..\CommonFiles\GhostScript\gs9.02\Resource;..\..\..\..\CommonFiles\GhostScript\gs9.02\lib;..\..\..\..\CommonFiles\GhostScript\gs9.02\kanji;..\..\..\..\CommonFiles\GhostScript\fonts;C:\WINDOWS\fonts
 
START gimp-2.6.exe
カレントディレクトリが GIMPPortable\App\gimp\bin なもんだから,なんだかそうぜつだねぇ。

あとはいつもどおり,GIMPPortable.exe を起動すればいいよ。

GIMPPortable で eps ファイルを開く

ことのおこり

GIMP には Portable なのがここにある。

これで eps ファイルを開くときには……。

せんじんたち

GIMP Portableでepsやaiファイルを開く -GhostScriptとGSviewをポータブル化 /AGPP といったお方もおられるけれども,なんかすまーとではないよね?

ひとつめのはっけん

ぐぐってるとこんなリンクを発見。

GIMPPortable\App\gimp\lib\gimp\2.0\environ\default.env

ふたつめのはっけん

Ghostscript 9.02 and GSview 4.9 J ここから Ghostscript をダウンロード。まずは実際にローカルにインストールしてみるよ。uninstal.txt なるファイルができてる。…なんかレジストリにかきこんでるね。

default.env

に設定を書き加えてみる。ってあとでわかったことだけど,GIMPPortable\App\gimp\lib\gimp\2.0\environ にあるファイルはなんでも (?) 読み込んでくれるみたいなので,新たなファイル ghostscript.env として。

GS_PROG=P:\PortableApps\CommonFiles\Ghostscript\gs9.02\bin\gswin32.exe
GS_DLL=P:\PortableApps\CommonFiles\Ghostscript\gs9.02\bin\gsdll32.dll
GS_LIB=P:\PortableApps\CommonFiles\Ghostscript\gs9.02\Resource\Init;P:\PortableApps\CommonFiles\Ghostscript\gs9.02\Resource;P:\PortableApps\CommonFiles\Ghostscript\gs9.02\lib;P:\PortableApps\CommonFiles\Ghostscript\gs9.02\kanji;P:\PortableApps\CommonFiles\Ghostscript\fonts;C:/WINDOWS/fonts
USB メモリは P ドライブ固定なの。

Ghostscript のはいち

P:\PortableApps\CommonFilesGhostscript ディレクトリほって,ダウンロードしてた Ghostscript 解凍してその中の gs9.02 ディレクトリをほおりこんでおく。

2011年6月12日日曜日

見えてない

ことのおこり

のに気づいたの。blockquoteoverflowhidden っぽいの。

やったこと

blockquote で検索したんだけど overflow は定義されてなくって,とりあえず auto にしておいたよ。

Firefox では scroll,Chrome だと…,折り返し?

2011年6月7日火曜日

Debian な MySQL には

/etc/mysql/debian.cnf というファイル

…があって,中身はこう。

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint

password = ぱすわぁど
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost

user     = debian-sys-maint
password = ぱすわぁど
socket   = /var/run/mysqld/mysqld.sock

basedir  = /usr
で,こんな風につかうといいらしいよ。

ためしてみる

かかれている通りに試してみる。

$ sudo mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases > backup.sql
mysqldump: Couldn't execute 'show create table `viewのなまえ`': SHOW VIEW command denied to user 'debian-sys-maint'@'localhost' for table 'viewのなまえ' (1142)
…あれ?

ぐぐる

…までもなく権限不足なんだろうけれども,ぐぐると「バグだ!」とか何とかいってるような…。

mysql> GRANT SHOW VIEW ON *.* TO 'debian-sys-maint'@'localhost';

Query OK, 0 rows affected (0.00 sec)
してあげればいいみたい。

めったに起動しない VMware 上の Debian Squeeze の logrotate

ことのおこり

未だに /etc/logsyslog.1 が現れないので不安になって。

たぶんこう

logrotate くんは,/etc/cron.daily/logrotate で動いていて,cron.daily って /etc/crontab

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cro
n.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cro
n.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cro
n.monthly )
#
ええと, 6:25 に動くことになっているのかな?

…そんな時刻には起動していないのである。

手動くーろん

くーろんって呼ぶよね?呼ぶよね?

閑話休題。まずは直接コマンド打ってみましょう。どうせ cron.daily 自体が動いていないのだから……。

$ sudo run-parts --report /etc/cron.daily
ん゛~。/var/log/syslog.1 が出来ないよ?

いぢったものたち

/etc/logrotate.conf

…はこんな感じ。

# see "man logrotate" for details
# rotate log files weekly
weekly
 
# keep 4 weeks worth of backlogs
rotate 4
weekly といっておられる部分を daily に変更。 daily なら 28 日かな~?

/var/lib/logrotate/status

Debian ではここみたい。ぐぐってると /var/lib/logrotate.status ってあるとこが多いけれど。これを昨日にしちゃえばいいのかな?

けっか

もういちど手動くーろんかましたら syslog.1 できました。

…ここまで書いているうちに,anacron とやらを発見。これ入れときゃいかったんでは……。

open-vm-tools とやら

ことのおこり

vmware-tools インストールしなきゃな~。一回だけのことだから憶えられないんだよ…。といつものごとくぐぐっていると,open-vm-tools とやらが目に付いた。Debian 6 Squeeze なら簡単インストール?

さぎょう

どうやら contrib らしいので,/etc/apt/sources.list を編集。って main のうしろに contrib くっつければいい。vim ならこう。

:%s/main$/main contrib/

続いてインストール。…ええと,新規インストール50個とかいってますね。

$ sudo apt-get update
 :
パッケージリストを読み込んでいます... 完了
$ sudo apt-get install open-vm-tools open-vm-source
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  autopoint binutils build-essential cpp cpp-4.4 debhelper diffstat dpkg-dev ethtool
  fakeroot g++ g++-4.4 gcc gcc-4.4 gettext git html2text intltool-debian
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-dev-bin
  libc6-dev libcroco3 libcurl3-gnutls libdpkg-perl liberror-perl libfuse2 libglib2.0-0
  libglib2.0-data libgmp3c2 libgomp1 libicu44 libmail-sendmail-perl libmpfr4
  libstdc++6-4.4-dev libsys-hostname-long-perl libtimedate-perl libunistring0
  linux-libc-dev make manpages-dev module-assistant po-debconf quilt rsync
  shared-mime-info zerofree
提案パッケージ:
  binutils-doc cpp-doc gcc-4.4-locales dh-make debian-keyring g++-multilib
  g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg gcc-multilib autoconf automake1.9
  libtool flex bison gdb gcc-doc gcc-4.4-multilib libmudflap0-4.4-dev libgcc1-dbg
  libgomp1-dbg libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7 gettext-doc git-doc
  git-arch git-cvs git-svn git-email git-daemon-run git-gui gitk gitweb glibc-doc
  fuse-utils libstdc++6-4.4-doc make-doc open-vm-toolbox libmail-box-perl graphviz
以下のパッケージが新たにインストールされます:
  autopoint binutils build-essential cpp cpp-4.4 debhelper diffstat dpkg-dev ethtool
  fakeroot g++ g++-4.4 gcc gcc-4.4 gettext git html2text intltool-debian
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-dev-bin
  libc6-dev libcroco3 libcurl3-gnutls libdpkg-perl liberror-perl libfuse2 libglib2.0-0
  libglib2.0-data libgmp3c2 libgomp1 libicu44 libmail-sendmail-perl libmpfr4
  libstdc++6-4.4-dev libsys-hostname-long-perl libtimedate-perl libunistring0
  linux-libc-dev make manpages-dev module-assistant open-vm-source open-vm-tools
  po-debconf quilt rsync shared-mime-info zerofree
アップグレード: 0 個、新規インストール: 50 個、削除: 0 個、保留: 0 個。
48.4 MB のアーカイブを取得する必要があります。
この操作後に追加で 135 MB のディスク容量が消費されます。
続行しますか [Y/n]?

これだけ?

VMware Infrastructure Web Access では VMware Tools が Running になっているから,これでいいんだよね?