LinuxからWindowsにFTPするのを自動化

以下の環境を想定

FTPクライアント側・・・Redhat Linux  FTPサーバー側・・・WIndows 2008R2
1.事前にLinuxにてFTPクライアントが入っているかを確認
[root@rhelvm1 Desktop]# rpm -qa |grep ftp
gvfs-obexftp-1.4.3-15.el6.x86_64
ftp-0.17-54.el6.x86_64             ★・・・・・・・・・・・・・・・・・パッケージ名がftpのみのものがftpクライアント。
2.Windowsサーバ側は、役割の追加からIISサービスを追加する。IISサービスの中にFTPサーバーがあるため。
3.FTPを対話的にではなくサイレント実行するには事前にFTPで使うパラメータを定義したファイルを作成する。ファイル名はなんでもよい
vi ftp.txt
open test1                                                     <—open <接続先ホスト名>
user TEST/Administrator Demad$Rack01    <—user <ユーザ名> <パスワード> の構文。ここで注意するのは接続先WindowsがADのドメイン配下にある場合、<ドメイン名>/<ユーザ名>の形とする。かつ、ドメイン名とユーザ名の間は\ではなく、/を使                                わないと認証エラーとなる。
bin                           <—バイナリモード
prompt                        <—promptの切り替え。デフォルトはONなので、これでOFFとなる。
put test2.txt                     <—put,getのコマンド
quit                           <—最後に終了のコマンド
4.上記FTP設定ファイルを作成したら、下記 -nコマンドで読み込ませる。
ftp -n <ftp.txt
↓このように無対話で実行される
[root@rhelvm1 ~]# ftp -n -v < ftp.txt
Connected to test1 (192.168.0.10).
220 Microsoft FTP Service
Remote system type is Windows_NT.
331 Password required for TEST/Administrator.
230 User logged in.
200 Type set to I.
Interactive mode off.
local: test2.txt remote: test2.txt
227 Entering Passive Mode (192,168,0,10,252,230).
125 Data connection already open; Transfer starting.
226 Transfer complete.
221 Goodbye.

HTML

<div>タグ・・・・CSSで必須となるタグ。<div>~</div>で囲むと、ひとつのグループとなる。<div>では、idとclassという属性をよく使う。

id属性・・・CSSなどで識別子として使います。一意である必要がある
class属性・・・CSSなどでクラス名を付けるために使う
 
class
「種別名を割り当てる」
→ 同じclass名を、1ページ中に何度でも使える

id
「固有の名前を割り当てる」
→ 同じid名は、1ページ中に1度しか使えない

class属性が対象の「種類・部類」を表しているに過ぎないのに対して、id属性は対象に「固有の名前」を付けて一意に表すために使われます。

ruby

Ruby

出力メソッド:

print ・・・改行なし

puts ・・・改行あり
p   ・・・ 出力形式似あわせて表示
http://d.hatena.ne.jp/japanrock_pg/20080613/1213314138

RubyGems

RubyGemsは、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと(”gem” と呼ばれる)ライブラリの配布用標準フォーマットを提供している。gemを容易に管理でき、gemを配布するサーバの機能も持つ。Rubyバージョン1.9以降では標準ライブラリの一部となっている。

Railsってなに?

Railsはカンタンに説明すると、Webアプリケーションをカンタンに作れるためのツールだと思ってください。

Webアプリケーションを作ることが出来れば、非常にできることの範囲が広がります。

たとえば、iOSアプリやAndroidアプリの裏側にはWebアプリケーションがありますし、ありとあらゆるものの土台にWebアプリケーションがあります。

Webアプリケーション自体は、ほぼあらゆる言語で開発することができます。

しかし、プログラミング言語自体はWebアプリケーションだけを作るために設計されているわけではないので、効率がわるい点があります。

そこで、Webアプリケーションを開発するために設計されたものをWebアプリケーションフレームワーク、通称フレームワークと言います。

フレームワーク自体はプログラミング言語ではありません。フレームワークはある特定のことに特化した機能を集めたものです。

その理由は、最も先進的で安定しており、豊富なRubyGemsライブラリがあることで他のフレームワークに比べプロトタイプを作るスピードを早めることができるためです。

また、導入事例としては、TwitterGithub、国内だとCookPadなど非常にたくさんの導入事例があります。

elasticsearch

Elasticsearchをインストールする。

まず、javaが必要なのでインストールする。

# yum -y install java-1.7.0-openjdk

 
Elasticsearchをインストールする

# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.4.noarch.rpm 

# rpm -ivh elasticsearch-1.2.0.noarch.rpm
 
起動させる

service elasticsearch start

 
 
fluent-plugin-elasticsearchをインストール
まず、gcc libcurl-devel をインストール

yum -y install gcc libcurl-devel 
 
fluent-plugin-elasticsearchをインストールする際に必要。
 
fluent-plugin-elasticsearchをインストールする。

/usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch

 
td-agent.confを書き換え、
ApacheのログをElasticsearchに記録するよう設定する。
 
検索コマンド
curl -XGET ‘http://localhost:9200/logstash-2014.10.01/ny_acl_log/_search?query=process:nserver

全データを削除
# curl -XDELETE ‘http://localhost:9200/*’ {“acknowledged”:true}

fluentd

install方法: 

参考:http://docs.fluentd.org/ja/articles/install-by-rpm

STEP1:インストール
redhat linuxにて下記コマンド実行でインストできる

注意:proxyサーバ経由の場合
 curl -U (ユーザ名):(パスワード) -x proxy.xxx.co.jp:(ポート) -L https://www.google.com
ただし、install-redhat.shの中にrpmコマンドとyumコマンドが実行されており、それぞれプロキシ経由でアクセスされる必要がある。
なので、プロキシ経由の場合、install-redhat.shを使わずに以下でinstallしたほうが早い。

1. /etc/yum.conf にproxyサーバ設定を定義
2./etc/yum.repos.d/td.repoに以下を追記


STEP2:起動

fluentdのログ=> /var/log/td-agent/td-agent.log

STEP3 動作確認

echo ‘{“hoge”:”fuga”}’ | /usr/lib64/fluent/ruby/bin/fluent-cat debug.test

Fluentdの標準プラグインにin_forwardというのがある。これは
TCPソケットを待ち受ける。 主に他のFluentdインスタンスfluentd-catコマンド、クライアントライブラリからの受信に用いられる。

上記STEP3にて動作確認でfluentd-catを使ったが、このforwardプラグインが内部的に使われてmatchディレクティブ先に書き込まれる仕組み

/etc/td-agent/td-agent.conf を開くと下記の記述がある


## match tag=debug.** and dump to console


<match debug.**>                 <ーーー上記STEP3のコマンドはこの定義にマッチし、stdout(標準出力)され、/var/log/td-agent/td-agent.log に書き込まれる。
type stdout
</match>

####
## Source descriptions:
##

## built-in TCP input

## @see http://docs.fluentd.org/articles/in_forward
<source>
type forward
</source>

/var/log/td-agent/td-agent.logを開くと下記の文言が記録されている。 時刻、タグ名(debug.test)、in_forwardプラグインで記録されたログ。
2014-10-04 22:14:38 +0900 debug.test: {“hoge”:”fuga”}
アクセスログのアクセス権限を変えておく
chmod o+rx /var/log/httpd
変えておかないと以下のエラーが/var/log/td-agent/td-agent.log にでる。
 [error]: Permission denied – /var/log/httpd/access_log

td-agent.conf の文法チェック

 
/etc/init.d/td-agent configtest
confに文法エラーがあれば出力してくれる。
 
プラグインの場所↓
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems

Fluentdの正規表現のチェックFluentdの設定する時に、ログフォーマットの正規表現作成に以下のサイトが役立つ

http://fluentular.herokuapp.com/

Regular Expressionに正規表現、Test Stringにログのサンプルを入力し
「Parse」をクリックすると、問題なければMatch Groupsに結果が表示される。
Formatに表示されているものを/etc/td-agent/td-agent.confにコピーする。

kibana

Kibanaをダウンロードして設置する。redhat linuxのデフォルトApacheのデフォルトHTMLファイル格納先に配置

 

kibanaの使い方

 ・サンプル画面の表示。↓Sample Dashboardのリンクをクリックすると、サンプルの画面が表示される。

 


Bootstrap

CSSフレームワーク。プロのデザイナーがCSSを経験と時間をかけて編集して、それなりのかっこいい見栄えのWebサイトを構築するのにたいし、Bootstrapを適用するとデザイナー顔負けのかっこいいWebサイトがデザインできるのがメリット。

準備
○ダウンロード作業
http://getbootstrap.com/ =>Download bootstrapボタンをクリックしてダウンロード。zipを解凍すると、以下のフォルダが展開される。
 
bootstrap-3.3.5-dist
    ├─css
    ├─fonts
    └─js
また、Bootstrapサイトに、以下のようにベーシックテンプレートがおかれているので、これを流用する
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Basic template

Start with this basic HTML template, or modify these examples. We hope you’ll customize our templates and examples, adapting them to suit your needs.

Copy the HTML below to begin working with a minimal Bootstrap document.

Copy
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
○配置
bootstrapという名前で適当な場所にフォルダを作成し、そのなかにindex.htmlというファイルを作成して、上記のベーシックテンプレートをコピペして
保存する。
また、上記でダウンロードした、css,font,jsフォルダもbootstrapフォルダに格納
○確認
index.htmlをブラウザで拓くと下記のように表示される

Hello, world!

○index.htmlの編集






↓今回はこのcol-smを適用。
モバイル(768px以下) タブレット(768px以上、992px未満) デスクトップ(992px以上、1200px未満) デスクトップ(1200px以上)
クラスの接頭辞 .col-xs- .col-sm- .col-md- .col-lg-
グリッドの動作 常に横並び 基本は縦積み、ブレークポイントを超えると横並び
コンテナの最大幅 なし(auto) 750px 970px 1170px
列の最大幅 auto 60px 78px 95px

↓以下のように設定すると、画面横幅が1200px以上の場合、gray:green:orangeが1:6:5の比率となり、992-1200pxの場合、2:6:4.768-992pxの範囲の場合、3:6:3となる

    <div class=”col-lg-1 col-md-2 col-sm-3″ style=”background:gray;”>Side1</div>
    <div class=”col-lg-6 col-md-6 col-sm-6″ style=”background:green;”>Main</div>
    <div class=”col-lg-5 col-md-4 col-sm-3″ style=”background:orange;”>Side2</div>
○tableの装飾 class=”table”を使う

・デフォルトの場合、↓このように味気ない

名前 点数
山田太郎 90
鈴木花子 85

<table class=”table”>とclassを定義すると下記のようになる

名前 点数
山田太郎 90
鈴木花子 85

<table class=”table table-striped”>とすると一行ごとに色がつく

名前 点数
山田太郎 90
鈴木花子

<table class=”table able-bordered”>でテーブルに枠がつく。

特定のコマンドやライブラリがどのYUMパッケージの中に含まれているのかをレポジトリから検索する

あるパッケージをインストールしている時にcannot find xxxx.soのようなエラーが出る時がある。
soファイルとは、UNIX系OSの共有ライブラリのファイル形式であるが、このsoファイルが、どのパッケージに含まれいるかを調べるコマンドが
yum whatprovidesコマンド。
 
使用例:

yum whatprovides liblber-2.4.so.2