スクリプトで「ホスト名」+「日付文字列」のファイルを作成するにはどのようにすればよいでしょうか?

 作成したいファイル名の例:hostname_yyyymmddhhmmss.log
             (Vertex_201005262330.logなど)
 ホスト名と日付時刻を取得してログファイルを作成するスクリプトを作成したいのです。

 環境は、一般的なUNIX(Linux, Solaris, HP-UX, BSDなど)とWindows(XP, W7, 2003, 2007など)での例をご掲示頂ければ幸いです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/05/27 23:36:38
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:fenstrial No.3

回答回数57ベストアンサー獲得回数14

ポイント33pt

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

id:atmcjj

丁寧な説明の上、検証までして頂きありがとうございました。

2010/05/27 23:28:05

その他の回答2件)

id:Loopy No.1

回答回数95ベストアンサー獲得回数11

ポイント15pt

touch `hostname`_`date +%Y%m%d%H%M%S`.log



http://sonic64.com/2003-10-29.html

id:atmcjj

簡潔ながらも、「そうか、touchがあったか・・・」とちょっと目鱗です。

2010/05/27 23:33:38
id:zaxaxaz No.2

回答回数13ベストアンサー獲得回数3

ポイント32pt

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...

id:atmcjj

両OSについて回答頂きありがとうございます。

2010/05/27 23:29:31
id:fenstrial No.3

回答回数57ベストアンサー獲得回数14ここでベストアンサー

ポイント33pt

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

id:atmcjj

丁寧な説明の上、検証までして頂きありがとうございました。

2010/05/27 23:28:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません