orz.conf

技術メモ✍

正規表現(その2)

前回の正解は^\t+$

初歩中の初歩ですね。
^が行の先頭
\tがタブ文字

  1. が一回以上の繰り返し

$が行末です。



今回はtest1の=の後の文字列だけを選択状態にします。

f:id:toshtone:20150726231150j:plain

プロパティとか設定値の値を選択したい時によくこの
正規表現を使用します。

答えは次回

正規表現(その1)

タブだけの行を選択する。
f:id:toshtone:20150726230245j:plain

こんな感じ。
f:id:toshtone:20150726230331j:plain

答えはその2へどうぞ

CentOS7をインストールしてみる

仮想環境を準備したら今度はosのインストールです。

toshtone.hatenablog.jp


まずはisoをダウンロード
http://www.centos.org/download/

4GBなので結構時間がかかりますね。

VMWare Playerの仮想マシン設定の編集をクリックします。
f:id:toshtone:20150719203234p:plain1枚目


isoを設定しOKをクリック。

そして、仮想マシンの再生をクリック。
いよいよOSインストールの開始です。

一番上です。
f:id:toshtone:20150719203642p:plain
2枚目


インストーラが動き始めて
f:id:toshtone:20150719203701p:plain
3枚目


日本語にしてやって
f:id:toshtone:20150719203711p:plain
4枚目


インストール先はデフォルトでいきます。
KDUMPは無効にしましょう。
ネットワークの設定とソフトウェアの選択をしてやりましょう。
f:id:toshtone:20150719203719p:plain
5枚目


ネットワークの設定画面。
f:id:toshtone:20150719204352p:plain
6枚目


ソフトウェアの選択をしてやりましょう。
標準でミニマム構成となっています。
ミニマムだとデスクトップが出てこないので今回はGnome Desktopを選択しましょう。
f:id:toshtone:20150719204419p:plain
7枚目


そしてインストールの開始。
f:id:toshtone:20150719204402p:plain
8枚目


再起動するとこの画面。
f:id:toshtone:20150719205214p:plain
9枚目


もひとつ。
f:id:toshtone:20150719205632p:plain
10枚目


日本語使おう。
f:id:toshtone:20150719205656p:plain
11枚目


アカウントを作ります。
f:id:toshtone:20150719205701p:plain
12枚目


場所を選択して
f:id:toshtone:20150719205703p:plain
13枚目


クラウドなんて使わない。
f:id:toshtone:20150719205706p:plain
14枚目


やっと完了
f:id:toshtone:20150719205710p:plain
15枚目


この画面が出たら
f:id:toshtone:20150719205712p:plain
16枚目


上にスライド
f:id:toshtone:20150719205715p:plain
17枚目


パスワードを入力し、いよいよログイン!
f:id:toshtone:20150719205717p:plain
18枚目

ログインしたらシャットダウンして、VMWarePlayerからisoイメージを抜いてやりましょう。


これにて終了。

Linuxを試すときのVMWarePlayerの設定

CentOS7を試したかったのでVMWarePlayer上にインストールしてみました。

今回は大体いつも同じVMWarePlayerの設定を書いてみます。
VMWarePlayerはversion 7.1.0 build-2496824を使っています。

起動して新規仮想マシンの作成をクリックすると下記の画面が出ます。

後でOSをインストールを選び、次へ
f:id:toshtone:20150719160624p:plain

Linuxを選択し、今回はバージョンをCentOS64ビットに設定します。
次へ
f:id:toshtone:20150719161110p:plain

仮想マシン名は自分の好きな名前で、
場所も自分の好きな場所で。
SSD使っているならSSD上がいいです!
とても早くなるから。
f:id:toshtone:20150719161428p:plain

今回はテスト用にちょっと試すだけなので20GBに設定。
20GBあれば十分です。
また仮想ディスクを複数のファイルに分割を選択します。
f:id:toshtone:20150719161741p:plain

最初の画面に戻ります。
今作成した仮想マシンを選択して、仮想マシン設定の編集を行います。
f:id:toshtone:20150719161941p:plain

ISOイメージを選択します。
f:id:toshtone:20150719162131p:plain

ダウンロードしたISOイメージを選択してください。

ちなみにメモリの量はCentOS6では768MB、CentOS7では1GBがギリギリラインでした。
たまにちょっと固まっていたのでそれぞれぞれ1GB、1.5GBくらいのほうがいいかも
しれません。

Windowsだと8.1は1GB、Windows2008R2は768MB、Windows2012は1GBくらいかな。
CPUパワーはそんなに必要ではなく、HDDも20GBあればテストする分には
よっぽど困らない感じです。

では次回はCentOS7のインストールを書きます。

Buffalo WSR-1166DHP ファームウェアアップデート再び

今朝突然うちのインターネットが繋がらなくなりました。

f:id:toshtone:20150628131523j:plain

結果からいうと、DNSがひけなくなっていたのが問題でした。
なぜ突然ひけなくなったかというと、分かりません(;^ω^)


8.8.8.8(googleのpublic dns)が使えて、YAHOO!BBDNS(うちはYAHOO!BBです)も
使用できたのでうちのルータとDNSサーバ間の通信が不通となって
いたようです。


WSR-1166DHPのファームウェアのバージョンは1.03でした。
これを最新バージョンである1.06にすることで、DNSの名前解決が
出来るようになりました。


今となっては調べられませんが(面倒だから)、1.03ではオープンリゾルバ
となっていた可能性もあります。
(ログからは探ることは出来ませんでした。なので推測です。)

これを使って確認すれば良かったな↓
オープンリゾルバ確認サイト
http://www.openresolver.jp/



以前バージョンアップしようとして、ルータがハングアップしたから
放置してたんですね(;^ω^)toshtone.hatenablog.jp


f:id:toshtone:20150628131658j:plain
今回はちゃんとアップデートが出来ました。

そういうことで無事復帰!

ファイルの転送を行うshell(bash)

普段使わないshellを使う、の2回目です。

scpでファイル転送を行うshellを書いてみたんですが、
scp実行時のエラーをログファイルに出力する方法について
ちょっと困ったのでその方法について記載したいと思います。

まずエラー出力をリダイレクトしようと考えました。

command > logfile    コマンドの実行結果をファイルに出力する場合
command >> logfile   コマンドの実行結果をファイルに追記する場合

command 1>logfile 2>&1    1が標準出力で2が標準エラー出力
                          標準出力をlogfileに、標準エラー出力を標準出力と同じ場所に出力

上記の方法だとscpでエラーとなった場合に思うように出力してくれない。
空のファイルになってしまう。
なのでこういう風にしてみました。

scp -rp ファイル名 ユーザ名@サーバ名:ディレクトリ 
if [ $? -eq 1 ]; then
    echo "Error "サーバ名 > ログファイル
fi

$?は特殊変数と呼ばれるもので色々な使われ方をするようなのですが、今回のケースでは
他の言語でいうtry ~ catch exception eのeに当たる部分となるようです。
(非常にざっくりですが)

logrotateがうまくいかない

今回はシェル(bash)の問題です。
普段全然シェルを書く機会がないくらいの人が対象です。

/etc/logrotate.dのsyslogとかhttpdを設定したはずなのに
うまくlogrotateしてくれない。
(CentOSやRedHatEnterpriseLinuxとか)

初歩的ではありますが、httpd.orgとかsyslog.20150601とかのまま
別ファイルとしてバックアップしておくとその情報でもログローテート
されてしまいます。
(どちらからログローテートされるのかわかりませんが)

なので~~.orgとか~~.日付とかになっているファイルを
.~~.org(又は日付)というドットファイルにするシェルを書いてみよう
というのが今回のお題です。


これをググらずに書きたいところです。

まずshellのfor文の書式

for f in 入力
do
  処理
done

他の言語でいうfor each的な動作です。
各ファイル名は$fとして扱われます。


続いて~~.orgとか~~.日付とかを正規表現で取得
.~~なんてつけてるのはバックアップファイルのみだと判断しています。
なのでこれ

*\.*


リネーム部分ですがドットファイルにするだけなので簡単です。

mv $f \.$f


これを組み合わせると下記のようになります。
普段シェルを使わないと一行目(シバン)ですら忘れてしまうんですよね。

#!/bin/bash
cd /etc/logrotate.d
for f in *\.*
do
	mv $f \.$f
done


これをさらにターミナルから直接実行できるよう一行に書き直してみます。

cd /etc/logrotate.d/;for f in *\.*;do mv $f \.$f;done

改行の箇所に;(セミコロン)を入れるのかと思いきや、doの後には入れません。
それくらいでしょうか。


また間違えて別のディレクトリのファイルを全てドットファイルにしてしまった。
とりあえず全てドットを取り除きたいという場合はどうでしょうか。


まずファイル名置換の方法です。

mv $f ${f/正規表現/置換後}

これを用いてこうなります。

mv $f ${f/\.*/}

後はforのファイル名取得箇所をin \.[0-9a-zA-Z_]*としてやればよいでしょう。

シェルが苦手なのでまたこういった内容のものを書いていきたいと思います。