VMware 単一仮想ディスクから分割仮想ディスクに変換

RAMDISKにゲストをコピーしようとしたら、仮想ディスクファイルのサイズがでかくて、
ファイルシステムからコピーできないと警告を受ける

kb.vmware.com

vmware-vdiskmanagerをダウンロードし、以下を読みながら実行

kb.vmware.com

単体で動かそうとしたらライブラリーでエラー
vmwareのインストール先に、実行ファイルを配置し、パスを通して実行

vmware-vdiskmanager.exe -r "filepath of original disk" -t 1 "filepath of new disk"

うまくできました

あとはVMwareでディスクを変更して完了

nethserverをインストールしてみた

小さなオフィスや中規模企業向けに作られたCentOSベースのディストリビューション
使える機能は以下のとおり。

Webサーバ,Webフィルター,Mailサーバ,FTPサーバ,FAXサーバ
メッセンジャー,グループウェア,プリントサーバ,アンチウイルス
ファイアウォール,VPN,プライベートクラウド,バックアップサーバなどが使える。

有償版だとウェブ会議の機能だとか、他にも色々あるらしい。

1.インストールがとにかく楽で早い
2.ブラウザでコントロールできる
3.ブラウザで機能追加(インストールできる)できる


公式サイトでISOをダウンロードし、よきにはからえ。

■CDBOOTからのインストール

CDから起動すると”NethServer 6.6”のインストール画面で”NethServer interactive install”を選択

1. ”NethServer installation”画面で”English”を選択し、[NEXT]

2. ”Network interfaces”画面でeth0を選択し、[Next]

3. "Network configuration"画面で、IP address,Netmask,Gateway,DNS serverを入力し、[Next]

4. ”Configuration end”画面で[Install]


■インストール完了後、管理者(root)パスワード変更

インストール完了後、再起動したらsshで接続し、rootでログインする(PasswdはNethesis,1234)
ログイン後、passwdコマンドでパスワード変更


■ブラウザにてnethserverの初期設定

ブラウザにて「https://NethServerIPADDRESS:980」にアクセスし、rootでログインする。

1. ”Welcome”画面を[Next]

2. "Set host name"画面で、Hostname,Domainを入力し[Next]

3. "Date and time"画面で、[Japan]を選択し[Next]

4. "SSH"画面でsshのポートを設定する(22番ポート以外がよいよとすすめられる)
TCP portを入力し[Next]

5. ”Usage statistice”画面で匿名で使用統計を送信するか確認
どっちでもいいので選んだら、[Next]

6. "Review changes"画面で設定を反映するか確認する
問題無ければ[APPLY]


■インストール後
ブラウザだけでログを見たり、サーバの停止再起動、サービスの開始停止、サービスのインストールなどができる。
Dashboardで各種情報がまとまってみえたり(空きMemoryやUptime、partitionの使用率)など。
特にディレクトリ内のファイル容量が見やすくてよかった。
(Scannerみたいな感じ Windows Freeware by Steffen Gerlach
中小企業のサーバもよくわかってない管理者が使うには便利かと思った。

過去1000日分の古いタイムスタンプの空ファイルを作成

過去1000日分の古いタイムスタンプの空ファイルを作成
findとか圧縮とかで使うテスト用ファイル

.
├── 20120725(7月 25 2012)
│   └── 20120725.txt(7月 25 2012)
├── 20120726(7月 26 2012)
│   └── 20120726.txt(7月 26 2012)
├── 20120727(25 7月 27 2012)
│   └── 20120727.txt(25 7月 27 2012)
…略
├── 20150418(4月 18 00:00 )
│   └── 20150418.txt(4月 18 00:00 )
├── 20150419(4月 19 00:00 )
│   └── 20150419.txt(4月 19 00:00 )
└── 20150420(4月 20 00:00 )
   └── 20150420.txt(4月 20 00:00 )

こんなスクリプトtouchfile.sh

使い方は「touchfile.sh 1000」

#!/bin/bash
sdays=0
edays=$1

while :
do
fdate=$(date --date "${sdays} day ago" +%Y%m%d)
mkdir ${fdate}
touch -t ${fdate}0000.00 ${fdate}/${fdate}.txt
touch -t ${fdate}0000.00 ${fdate}
sdays=$(expr 1 + ${sdays})
test ${sdays} -eq ${edays} && break
done

CentOS7(Minimal)のインストール

1.cdbootを行い、「Install CentOS 7 」を選択

 

2.言語およびキーボードの選択

 

3.インストール概要→インストール先(D)を選択

 

4.デバイスの選択 今回はパーテーション変更しないので、そのまま[完了(D)]を押して、前のインストール概要画面から[インストール開始]ボタンを押す

 

5.インストール開始 rootパスワード(R)とユーザ作成(U)を行う

 

6.rootパスワードを入力し、[完了]ボタンを押す 短いパスワードなどの場合は、[完了]ボタンを2回押す

 

7.ユーザ作成 よきにはからえ

 

8.インストール完了したら設定画面で、[再起動]ボタンを押す

cal 09 1752の出力が変

9月の出力が変
$ cal 09 1752

   September 1752   
Su Mo Tu We Th Fr Sa
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

9月14日 - 北米の13植民地を含むイギリス帝国でユリウス暦からグレゴリオ暦に切替。そのため当該地域のカレンダーには1752/9/3 ~ 1752/9/13 が無い。
1752年 - Wikipediaより


なるほど。

curlよく使うメモ

下部のおまけのほうがメインかも

■ダウンロード(プロトコル無指定の場合はhttp)
$ curl http://domain/
$ curl domain

■ダウンロードファイル保存
$ curl -O http://www.google.com/index.html

■ダウンロードファイル保存(ファイル名指定)
$ curl -o index.html www.google.com

■ヘッダーの取得
$ curl -Is www.google.com

ftpでファイル取得
$ curl ftp://domain:port/full/path/to/file

■ftpsでファイル取得
$ curl --ssl ftp://domain:port/full/path/to/file

ftpでファイル取得 ログインして取得(:passwordなしだと、実行後パスワードを求められる)
$ curl -u username:password ftp://domain:port/full/path/to/file

ftpでアップロード(-全データ、filename指定/-u IDとPW、-aを加えると追記)
$ curl -T - ftp://domain:port/myfile
$ curl -T filename ftp://domain:port/myfile
$ curl -T filename -u username:password ftp://domain:port/myfile
$ curl -T filename -u username:password -a ftp://domain:port/myfile

■キーファイルを使った取得
$ curl -u username: --key ~/.ssh/id_rsa scp://domain/~/file.txt

■プロキシを使った取得(プロキシに認証が必要な場合は -U を使う。接続先の認証は-uを使い同時に使用)
$ curl -x proxyserver:port ftp://domain/
$ curl -U username:password -x proxyserver:port ftp://domain/

■プロキシを使わない場合
$ curl --noproxy ftp://domain/

■ヘッダー取得(Iはヘッダーだけ。iはヘッダーと本文)
$ curl -I domain
curl -i domain

リファラ、ユーザエージェント
$ curl -e domainname http://domain
curl -A 'UserAgent' http://domain

■速度制限 例1秒間に1000byte以下
$ curl -Y 1000 -y 1 domain
$ curl --limit-rate 1K domainm

■ダウンロード再開(-C -)
$ curl -o file ftp://domain/path/file
$ curl -C - -o file ftp://domain/path/file

■更新されている場合ダウンロード
$ curl -z local.html http://domain/remote.html

■デバックモード(vヘッダーつき 他は詳細でファイル保存される
$ curl -v domain
$ curl --trace trace.txt domain
$ curl --trace-ascii trace.txt domain
$ curl --dump-header headers.txt domain

■出力制御(s進捗とエラーメッセージなし,sS進捗なし,f通常終了コード0になる400番台を異常終了にする,kSSLエラー無視)
$ curl -s domain
$ curl -sS domain
$ curl -f domain
$ curl -k domain



■おまけ

■使用中のグローバルIPアドレスの確認
$ curl ifconfig.me

他に以下のようなものがあり
http://ifconfig.me

$ curl ifconfig.me
$ curl ifconfig.me/ip
$ curl ifconfig.me/host
$ curl ifconfig.me/ua
$ curl ifconfig.me/port
$ curl ifconfig.me/lang
$ curl ifconfig.me/keepalive
$ curl ifconfig.me/connection
$ curl ifconfig.me/encoding
$ curl ifconfig.me/mime
$ curl ifconfig.me/charset
$ curl ifconfig.me/via
$ curl ifconfig.me/forwarded
$ curl ifconfig.me/all
$ curl ifconfig.me/all.xml
$ curl ifconfig.me/all.json

■10秒毎に計測
URL=http://www.google.com; while true; do echo $(curl -L --w %{speed_download} -o/dev/null -s $URL) >> bps.log; sleep 10;done &

■天気
$ weather(){ curl -s "http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=${@:-}"|perl -ne '/\([^<]+)/&&printf "\x1B[0;34m%s\x1B[0m: ",$1;/\([^<]+)/&&print $1,"\n"';}
$ weather tokyo

April 12, 2015: Clear. High 15&amp;deg;C (59&amp;deg;F). Winds 21 kph ENE
April 13, 2015: Rain. High 12&amp;deg;C (53&amp;deg;F). Winds 28 kph NE
April 14, 2015: Rain. High 15&amp;deg;C (59&amp;deg;F). Winds 10 kph North
April 15, 2015: Clear. High 18&amp;deg;C (64&amp;deg;F). Winds 46 kph SSW
April 16, 2015: Clear. High 18&amp;deg;C (64&amp;deg;F). Winds 21 kph SSW
April 17, 2015: Clear. High 19&amp;deg;C (66&amp;deg;F). Winds 54 kph SSW

ステータスコードを得るだけ
$ urls=('google.com' 'yahoo.co.jp'); for i in ${urls[@]}; do http_code=$(curl -I -s $i -w %{http_code}); echo $i status: ${http_code:9:3}; done

google.com status: 302
yahoo.co.jp status: 301

短縮URLのURLをチェック
$ check(){ curl -sI $1 | sed -n 's/Location: *//p';}
$ check htn.to/sVVDym

http://dy.hateblo.jp/

gmail取得
にusername@gmail.comのアカウント名
にusername@gmail.comのパスワード

$ curl -u : --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print "\t" if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;'


curl時のレスポンス詳細確認(curl-format.txt作成後、実行)
$ vi curl-format.txt

\n
            time_namelookup:  %{time_namelookup}\n
               time_connect:  %{time_connect}\n
            time_appconnect:  %{time_appconnect}\n
           time_pretransfer:  %{time_pretransfer}\n
              time_redirect:  %{time_redirect}\n
         time_starttransfer:  %{time_starttransfer}\n
                            ----------\n
                 time_total:  %{time_total}\n
\n

$ curl -w "@curl-format.txt" -o /dev/null -s http://www.google.com/

            time_namelookup:  0.151
               time_connect:  0.165
            time_appconnect:  0.000
           time_pretransfer:  0.165
              time_redirect:  0.000
         time_starttransfer:  0.179
                            ----------
                 time_total:  0.179

こちらがもっと詳しい
curlでボトルネック調査をする - 256bitの殺人メニュー

■辞書検索(mで探して、dで表示)

$ curl dict://dict.org/m:nslookup

220 pan.alephnull.com dictd 1.12.1/rf on Linux 3.14-1-amd64 <auth.mime> <16312396.29353.1428900068@pan.alephnull.com>
250 ok
152 1 matches found
foldoc "nslookup"
.
250 ok [d/m/c = 0/1/78074; 0.000r 0.000u 0.000s]
221 bye [d/m/c = 0/0/0; 0.000r 0.000u 0.000s]

$ curl dict://dict.org/d:nslookup

220 pan.alephnull.com dictd 1.12.1/rf on Linux 3.14-1-amd64 <auth.mime> <16312399.29362.1428900071@pan.alephnull.com>
250 ok
150 1 definitions retrieved
151 "nslookup" foldoc "The Free On-line Dictionary of Computing (20 July 2014)"
nslookup

   <networking> A {Unix} {utility program}, originally by Andrew
   Cherenson, for querying {Internet} {domain name servers}.  The
   basic use is to find the {IP address} corresponding to a
   given {hostname} (or vice versa).  By changing the query type
   (e.g. "set type=CNAME") other types of information can be
   obtained including CNAME - the {canonical name} for an alias;
   HINFO - the host {CPU} and {operating system} type; MINFO -
   mailbox or mail list information; {MX} - {mail exchanger}
   information; NS - the {name server} for the named zone; PTR -
   the hostname if the query is an IP address, otherwise
   the pointer to other information; SOA the domain's
   start-of-authority information; TXT - text information; UINFO
   - user information; WKS - supported {well-known services}.
   Other types (ANY, AXFR, MB, MD, MF, NULL) are described in
   {RFC 1035}.

   
{(ftp://src.doc.ic.ac.uk/computing/operating-systems/unix/bsd-sources/usr.sbin/named/tools/nslookup/)}.

   (1994-10-27)

.
250 ok [d/m/c = 1/0/72; 0.000r 0.000u 0.000s]
221 bye [d/m/c = 0/0/0; 0.000r 0.000u 0.000s]

.bashrc(history)の編集

.bashrc

HISTTIMEFORMAT='%F %T '
HISTSIZE=10000
HISTFILESIZE=10000
HISTIGNORE="history*"
HISTCONTROL=ignoreboth
shopt -s cmdhist
shopt -s histverify
shopt -s histreedit

HISTTIMEFORMAT='strftime形式' #詳細はman strftime
HISTSIZE=履歴保持数
HISTFILESIZE=履歴ファイル保持 #0にすると再度ログインした時に履歴が消えている
HISTIGNORE="history*:ls" #記録しないコマンドの指定、:で複数指定

HISTCONTROL=ignorespace #半角スペースで始まるコマンドは記録しない
HISTCONTROL=ignoredups #連続した重複は履歴に記録しない
HISTCONTROL=ignoreboth #ignorespaceとignoredupsの両方
HISTCONTROL=erasedups #重複した古い履歴は消える

shopt -s cmdhist #改行いりのコマンドを1行に記録してくれる
shopt -s histreedit #履歴置換を実行前に、置換後のコマンドを教えてくれる
shopt -s histverify #履歴置換で失敗した時、もう一度やり直せるだけ


履歴置換とhistreeditとhistverify

# echo 1
1
# ^1^2←履歴置換を入力し実行
# echo 2←実際に実行するコマンドが表示されるので、ENTERキー
2
# ^22^1←履歴置換を間違えると
-bash: :s^22^1: substitution failed
# ^22^1←履歴置換入力直後に戻る

履歴メモ
# !! #直近のコマンド
$ sudo !! #地味に便利
# !ls #直近に使ったlsコマンド)
# history | grep ls

    1  ls
    2  ls -l

# !2 #historyの2番目のコマンド(ls -l)

# [CTRL+r]
(reverse-i-search)`': #履歴探索モード



カレントディレクトリも履歴に表示したいのだが、これだと移動してもディレクトリ名が変わらない。
HISTTIMEFORMAT="%h %d %H:%M:%S $(pwd)> "