[KONY.NET] タグ「Linux」による検索結果

[Linux]○日前の日付を取得する方法

カテゴリ:

Linuxで○日前の日付を取得する方法は、以下のとおり。

■dateコマンドの場合

・当日の1日前
date -d "1 day ago"

・指定日付の1日前
date -d "日付 1 day ago"

・指定日付の2日前
date -d "日付 2 days ago"
↑days と複数形になっていることに注意

-d は --date でもOK。

<実行例>


# date -d '1 day ago' +%Y%m%d
20060824
# date --date "1 day ago" +%Y%m%d
20060824
# date -d "20060825 1 day ago" +%Y%m%d
20060824
# date -d "20060825 2 days ago" +%Y%m%d
20060823

■Perlの場合

・現在日付の1日前

/usr/bin/perl -e '@tm = localtime(time() - 24*60*60);printf("%4d%02d%02d",(1900+$tm[5]),$tm[4]+1,$tm[3]);'

[Linux]tar中のエラーについて

カテゴリ:

tar中に
「読み込んだファイルが変更されています」
というエラーが発生したときお読みください。

続きを読む

Windowsブートローダ(NTLDR)からLinuxを起動する

カテゴリ:

WindowsとLinuxを共存させる場合、
さまざまなブート方法が考えられるが、
Windowsをメインに利用しているユーザのために、
Bootpartを利用して、
Windowsブートローダ(NTLDR)からLinuxを起動する方法を紹介する。

続きを読む

[Perl]標準出力を加工する

カテゴリ:

標準出力を加工する方法です。

例えば、vmstatは時刻が表示されないため、
vmstat -n 1の標準出力の先頭に常に時刻を
表示させてみます。

■Perl


open(FH, "vmstat -n 1 |");
while($x = ) {
        ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time());
        printf("%02d:%02d:%02d %s",$hour,$min,$sec,substr($x,0));
}

■gawk


#!/bin/sh
vmstat -n $* | gawk '{printf("%s %s\n", strftime("%H:%M:%S"),$0)}'

さらに、Perlの場合は、先頭に、


$|=1;

を追加して、バッファリングをOFFにすれば、
tail -f ですぐ確認できます。
バッファリングが有効だと1秒おきにvmstatを出力しても
ファイルへは1秒おきに出力されません。
この場合、tail -f などの確認がしづらくなります。

上記スクリプトを通して実行した vmstat -n 1 の出力結果は以下のとおりです。


04:40:47 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
04:40:47  r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
04:40:47  0  0      0 7926776  64156  97868    0    0    14     7  164    49  0  0 100  0
04:40:48  1  0      0 7926776  64156  97868    0    0     4     4  176    40  0  0 100  0
04:40:49  0  0      0 7926776  64156  97868    0    0     4     4  165    34  0  0 100  0

[Linux]大量ファイルの削除・コピー方法(xargs編)

カテゴリ:

大量ファイルをコピーしたり、tarで固めたり、
削除したりするときの方法です。

例えば、ls * としたときに * で展開できる
ファイル名の長さは制限があります。(確か128バイト)

<エラー例>

# ls *
bash: /bin/ls: 引数リストが長すぎます

lsだけでなく cp * , rm * もできなくなります。

そこで xargs を利用します。
例えばOracleの監査ファイル *.aud の削除などに。

方法は以下のとおりです。

■削除

find ${ORACLE_BASE}/admin/bdump -name '*.aud' | xargs /bin/rm -f

■コピー

find ${ORACLE_BASE}/admin/bdump -name '*.aud' | xargs -i% /bin/cp -fp % /backup/

cpのようにfindの内容をコマンドの途中に挿入したい場合は、
-iで挿入文字列を指定し、指定した文字列を挿入したい場所に
記述します(上記の例だと%)。

[Linux]yesコマンド

カテゴリ:

コマンド名:yes

~man より~

yes はコマンドライン引数をスペースで区切って末尾に改行 (newline) を付加し、 kill されるまで繰り返して表示する。引数が一つも与えられないと、yes は `y' に改行を付加したものを kill されるまで表示しつづける。

要は、

$ yes | cp -p /hoge /piyo

などした場合、複数ファイルについて yes/no 聞かれても、
すべて y (デフォルト) を自動的に打ってくれます。

yes の後ろに文字列を指定すれば、
任意の文字列を打ち続けてくれます。
自動実行シェルを作成する際に役立ちそうですね。

Twitter

New Comment

Tag Cloud

広告

広告

Calendar