作成したいファイル名の例:hostname_yyyymmddhhmmss.log
(Vertex_201005262330.logなど)
ホスト名と日付時刻を取得してログファイルを作成するスクリプトを作成したいのです。
環境は、一般的なUNIX(Linux, Solaris, HP-UX, BSDなど)とWindows(XP, W7, 2003, 2007など)での例をご掲示頂ければ幸いです。
Windowsの場合
cmd.exeの機能とWindowsの環境変数を使用しています
type nul >>によって、空のファイル(nul)の内容を追記するという形をとりました。
時刻部分は以下のサイトを参考にしました。
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdat...
Windows Vistaで検証。
setlocal
set time2=%time: =0%
type nul >> %COMPUTERNAME%_%date:~-10,4%%date:~-5,2%%date:~-2,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%".log"
endlocal
Unixの場合
シェルの機能とhostname,dateコマンドを使用しています。
ubuntu10.04で検証。
#!/bin/sh
touch `hostname`_`date "+%Y%m%d%H%M%S"`.log
簡潔ながらも、「そうか、touchがあったか・・・」とちょっと目鱗です。
UNIXの場合は、
filename="`hostname`_`date +%Y%m%d%H%M%S`.log"
こんな感じで、Windowsの場合は、
set fdate=%date:~-10,4%%date:~-5,2%%date:~-2,2% set _ftime=%time: =0% set ftime=%_ftime:~0,2%%_ftime:~3,2%%_ftime:~6,2% set filename=%fdate%%ftime%.log
これでfilenameにファイル名が入ってきます。
http://codezine.jp/unixdic/w/date/
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdat...
両OSについて回答頂きありがとうございます。
Windowsの場合
cmd.exeの機能とWindowsの環境変数を使用しています
type nul >>によって、空のファイル(nul)の内容を追記するという形をとりました。
時刻部分は以下のサイトを参考にしました。
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdat...
Windows Vistaで検証。
setlocal
set time2=%time: =0%
type nul >> %COMPUTERNAME%_%date:~-10,4%%date:~-5,2%%date:~-2,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%".log"
endlocal
Unixの場合
シェルの機能とhostname,dateコマンドを使用しています。
ubuntu10.04で検証。
#!/bin/sh
touch `hostname`_`date "+%Y%m%d%H%M%S"`.log
丁寧な説明の上、検証までして頂きありがとうございました。
丁寧な説明の上、検証までして頂きありがとうございました。