ラベル

Server (108) work (77) Idea (68) Car (31) PC (29) DAW (28) other (19) MakingWEBsite (18) 趣味 (18) health (13) CentOS (11) drupal (11) (9) android (4) スマホ (4) communication (3) drupal7 (3) hint (3) meno (3) モバイル (3) 歯医者 (3) 第二種電気工事士 (3) 英語 (3) PC Server (2) drupal8 (2) ms access (2) uwp C# (2) めし (2) 整備 (2) 音楽 (2) MIDI (1) diy (1) 会計 (1) 動画再生 (1) 生活 (1) 郵便 (1) 食べ物 (1)
ラベル CentOS の投稿を表示しています。 すべての投稿を表示
ラベル CentOS の投稿を表示しています。 すべての投稿を表示

2017年7月30日日曜日

AngularJS RESTful Web Services drupal SPA(Single Page Application) Decoupled  JavaScriptフレームワーク

Augula
drupalの取り込み。(views、コンテンツのデザインを補ったり。)

MS Edgeは正常に機能しないことがあるので、既定のブラウザをchromeに変えておく。

---------------------------------------
Angularとdrupalでデータのやりとりをするためにお互いに理解できる共通の規格が必要。

RESTful Web Services
REST(Representational State Transfer) という規格に従って情報のやりとりをする仕組み。
この仕組みを介してdrupalとAngularの間で情報のやりとりをする。

具体的には、drupalに入っているモジュール
WEB SERVICESグループのモジュールを全部オンにする。
HAL
Serializes entities using Hypertext Application Language.
HTTP Basic Authentication
Provides the HTTP Basic authentication provider
RESTful Web Services
Exposes entities and other resources as RESTful web APISerialization
Provides a service for (de)serializing data to/from formats such as JSON and XML
Install

REST UIーーー後から入れるモジュール
REST UIの設定
admin/config/services/rest/resource/entity%3Anode/edit
Home>>Administration>>Configuration>>Web services>>Rest

GranularityをMEthodにする。

下のGet Delete pachのxmlを除いたすべてをチェック。
GET
Accepted request formats
 hal_json
 json
 xml
Authentication providers
 basic_auth
 cookie
 POST
Accepted request formats
 hal_json
 json
 xml
Authentication providers
 basic_auth
 cookie
 DELETE
Accepted request formats
 hal_json
 json
 xml
Authentication providers
 basic_auth
 cookie
 PATCH
Accepted request formats
 hal_json
 json
 xml
Authentication providers
 basic_auth
 cookie

コンテンツを作る時に
URL PATH SETTINGS
URL alias
を設定しておく。

viewsを作る時にREST EXPORT SETTINGS-Provide a REST exportにチェック。
URLを記入する。
----------------------------------------
ここで設定したdrupalのhal_jsonまたはjsonファイルを取得するには
コンテンツのアドレスの後ろに
?_format=hal_json
?_format=json
をつける。
-----------------------------------------
Angularのインストール

AngularをインストールするのにNode.jsが必要。

Node.js-----サーバーサイドJavaScript
CentOSはEPELリポジトリからインストールできる。
Windowsは、Windows用のインストーラーがある。
インストール後
node -v
npmも使えるようになっているはず
npm -v
で確認。
ただ、angular-cliがangular/cliになって、その時にデフォルトの管理ツールがnpmからYARNというものになった。とか。
Yarn--FaceBook、Googleなどで共同開発している物だそうだ。
モジュールの並列ダウンロードによる高速化、ロックファイルによる依存関係のバージョンの固定など、いろいろと改良されているそうだ。
インストールは
npm install -g yarn
---------------------------------------------

Angularの設置。

自分で0から作ってもいいのだろうけど。
でも、それでは大変なので土台になる型を作ってそこから始める。


Angular QuickStartwを使った立ち上げ方法。
quickstart-master.zipをダウンロードして展開したルートフォルダーにコマンドプロンプトで移動して
npm install
この方法はアプリを立ち上げるたびに、この作業をする。
アプリの起動
npm start




Angular CLIをインストールしてng new アプリ名 で立ち上げる方法。
Angular CLIにはGITが必要らしい。
WindowsにはGit for Windows
Git-2.13.3-64-bit.exe
をインストール。

CentOS
npm install -g angular-cli
(angular-cliがangular/cliになった。のか。)

Windows--コマンドプロンプトで
npm install -g @angular/cli

インストールの確認は
ng --version
-----------------------------------------------------------------
アプリ毎に必要な土台を作る。

アプリの作成は、任意のフォルダーに移動して
ng new アプリ名

アプリの起動
今作った「アプリ名」フォルダに移動
cd アプリ名
して
ng serve
(アプリのビルドとWebサーバーの起動)
または
ng serve --open
(openはブラウザを自動で開くオプション)
すると、
http://localhost:4200/
に最初の画面が表示される。

確認したらctrl+cで抜ける。
抜けた後は当然http://localhost:4200/にはアクセスできなくなる。
-----------------------------------------------------
ライブラリなどのインストール
ここで、
yarn add intl bootstrap ngx-bootstrap --dev
これで、最新安定板が入る。
バージョンを指定するには
yarn add bootstrap@3 --dev
yarn add bootstrap@4 --devとして、バージョン4に安定板がない時には3の安定板か4のアルファ、ベータ版などから選択できるように表示される。
ダウングレードしたいときはそのバージョンを指定する。

npmを使いたい場合は
npm install --save intl@1 bootstrap@3.3.7
saveオプションはjsonファイルに書き込む

----------------------------------------------------
サーバーアップ用ディレクトリdistは
ng build --env=prod
で作られる。
(ここいら辺の事はよくわからない。よく調べてからやった方がいい。データバインドの自動更新の仕方など、オプションによってデベロップ版とプロダクション版で動きが違ってくるみたいだ。)
(ng build --prodだけだとうまくいかない。Environment "" does not exist.とエラーが出る。)

---------------------------------------------------------------
chromeブラウザにデフォルトでデベロッパーツールが入っている。
F12を押すか、Ctrl+Shif+iか、「その他のツール」>「デベロッパーツール」

2017年6月くらいから、
Filter icon missing from Chrome Developer tools console
デベロッパーツールのコンソールからフィルタアイコン、それから、正規表現(Regex)が消えたみたいだ。自分の必要なものだけを取り出して処理の順番を見たいときはどうするの?
普通にスペースで区切って並べて書いてもうまくいかない。

augury
デベロッパーツールのエクステンションとしてchromeにインストールする。
https://augury.angular.io/
ただ、今(2017/08/10)のところAngular4には対応していないみたいだ。

-----------------------------------------
検証しとく

Angular側
HttpModule

Drupal側
jDrupal

-----------------------------------------

ディレクトリ構造。など。

src/app/
以下にファイルを作っていく(ファイルができている)。

src/app/app.module.tsなど、
モジュールに関しての情報。
モジュール、コンポーネントをインポート。など。
(.tsはTypeScriptの略)

src/app/app.component.tsなど、
コンポーネントに関しての情報。
taitle = 'タイトル' などが書かれているところ。

src/app/app.component.html
サイトの大枠。

src/app/app.component.css
CSS情報

src/main.ts
モジュールをインポートして起動。


------------------------------------------------
どうして下のようなことを書いたのか忘れた。一応、消さずにとっておく。
srcと同じフォルダ?で、
npm startコマンド

-------------------------------------------------------
Angular推薦IDE(Integrated Development Environment)
WebStorm(個人向け $59 first year)
IntelliJ IDEA(個人向け $149 first year)
Visual Studio Code(無料。プラグインなどを自分で設定する)

------------------------------------------------------
Firebase----いろいろと便利らしい
Ajax--------同一画面での動的なサイト作りができる。(サーバーから一画面毎に画面を送信するのではなく。)
JSON(JavaScript Object Notation)---(小さい、複雑なことも記述できる)データベース
-------------------------------------------------------
ng2-bootstrapはngx-bootstrapに名前が変わっている。
yarn add ngx-bootstrap --dev


2017年7月18日火曜日

tmpfs RAMディスク CentOS


tmpfs(RAMメモリがデバイスtmpfsとして認識、登録されている。)を使うには。

OS起動時に自動でtmpfsが
/dev/shm
にマウントされる。
一時的にただ単にRAMディスクを使いたければ、これをそのまま使ってもいいのかな?
dev以下を直接使うっていう話もあまり聞かない気がするけど、再起動すると消えるようなものを置くところだし、直接使えばfstabに記述しなくてもいいのだし・・・。
RAMメモリの容量の半分までが動的に割り当てられるそうだ。


tmpfsを/tmpにマウントして使いたいときは、
# vi /etc/fstab
tmpfs /tmp tmpfs defaults 0 0
上のようにサイズを指定しないとメモリの半分が割り当てられる。
容量は動的に動くみたいだ。(ディレクトリに指定すると半分が固定されるとも書いてあるものもあるから、実際の容量を確認しながら使った方がいいと思う。)
容量を固定したければ下のようにする。
tmpfs /tmp tmpfs defaults,size=64m 0 0

なんでこんなことを調べたか。
Brute Force Attackが多くて、ほとんどは無害のアタックなのだけど放っておくべきか、対策を立てるべきか迷っている。
で、とりあえず対策を取って様子を見てみることにした。
ログのチェックをするスクリプトをcronで回してアタックしてくるipをiptablesにdropするように書き出して拒否したいのだけど、下手するとその行為がBrute Force Attack以上の害になってしまうんじゃないかと・・・。
でも、やってみたいという興味もあるし、だから、実験としてやってみる。
で、hddに書き出してもいいのだけど、最初は30秒とか1分おきにcronを回そうと思っているので、負荷による故障を避けるためにラムディスクに書き出してみ用と思った。(cronは2つ同時に回して片方を30秒スリープ掛けることで30秒おきにできるのだそうだ。)
自分の感覚から行くと、2分から3分に一回回しておけばほぼなくなるのではないかと思う。
とかなんとか書きながら、dropするIPアドレスの登録を手動でやっていたらだいぶ攻撃が減った。
1時間に一回くらいになってしまった。
Disconnecting: Too many authentication failures for root
と、一回、sshオリジナル拒否に拒否されるとあきらめる感じ。
こんな感じなら一日に一回cronを回しとけばいいか。
となると、RAMディスクは必要なくなるか?
実際にやってみるとRAMディスクを使うとものすごく処理が速くなったから一日に一回でもRAMディスクを使うことにした。

---------------------------------------------------
drupal8が結構遅いんだよなぁ。
phpなどのページのキャッシュをRAMディスクに置くといいのかな。

置けるものならデータベースをRAMディスクに置くと速くなるだろうけど、突然PCが落ちたときにバックアップがとれないなぁ。



2017年7月13日木曜日

らじるらじるの録音 CentOS

民放、radikoの録音方法は
http://yasutam.blogspot.jp/2014/05/centos-6-radiko.html
に書いた。

ここでrtmpdump, ffmpeg, lame, など
らじるらじる録音に必要なものをインストールをしている。

-----------------------------------------------------------------
らじるらじる(NHKラジオ)の録音

rtmpdumpを使って録音
録音時間の設定 --stop 902(秒)

m4aを再生できない機器でmp3に変換したい場合。
lameなどmp3エンコーダーをインストールして
ffmpeg -i InputFile.flv -ab 128K Output.mp3


NHK FM放送
rec_razirufm.sh

#!/bin/sh

/usr/bin/rtmpdump --rtmp "rtmpe://netradio-fm-flash.nhk.jp" --playpath NetRadio_FM_flash@63343 --app "live" --swfVfy http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf --quiet --live --stop 902 -o /tmp/RadiruRec/`date +%Y%m%d`_raziko.flv
sleep 1m
#-- convert flv to mp4
/usr/bin/ffmpeg -i /tmp/RadiruRec/`date +%Y%m%d`_raziko.flv -acodec copy /tmp/nhkfm_`date +%Y%m%d%H%M%S`.m4a



NHKラジオ第一放送
rec_raziru1.sh

#!/bin/sh

/usr/bin/rtmpdump --rtmp "rtmpe://netradio-r1-flash.nhk.jp" --playpath NetRadio_R1_flash@63346 --app "live" --swfVfy http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf --quiet --live --stop 960 -o /tmp/RadiruRec/`date +%Y%m%d`_raziko.flv
sleep 1m
#-- convert flv to mp4
/usr/bin/ffmpeg -i /tmp/RadiruRec/`date +%Y%m%d`_raziko.flv -acodec copy /tmp/nhk1_`date +%Y%m%d%H%M%S`.m4a



NHK ラジオ第二放送
rec_raziru2.sh

#!/bin/sh

/usr/bin/rtmpdump --rtmp "rtmpe://netradio-r2-flash.nhk.jp" --playpath NetRadio_R2_flash@63342 --app "live" --swfVfy http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf --quiet --live --stop 960 -o /tmp/RadiruRec/`date +%Y%m%d`_raziko.flv
sleep 1m
#-- convert flv to mp4
/usr/bin/ffmpeg -i /tmp/RadiruRec/`date +%Y%m%d`_raziko.flv -acodec copy /tmp/nhk2_`date +%Y%m%d%H%M%S`.m4a


これらのファイルを/usr/local/binに移動。
mv rec_raziru2.sh /usr/local/bin/rec_raziru2.sh

rootでの実行権限をつける
chmod 755 /usr/local/bin/rec_raziru2.sh

cronに登録
radioファイルを作ってそこにrec_raziru2.shを登録する。
vi /etc/cron.d/radio
15 09 * * 3-5 root /usr/local/bin/rec_raziru2.sh
(パスは通っているのだけどユーザーを指定してフルパスで記述しないと動かなかった。なぜだろう?)



2017年7月11日火曜日

logwatch 設定 logwatch.conf

logwatch送信時に自分で設定したコマンドの結果や自分のスクリプト結果も送れないかと思って調べてみた。

結果:できそうだけど、面倒そうなのでやめた。

logwatchはログ収集専門だろうけど、

hdd空容量表示に
df
を使っているのだろうから他のコマンドも使えるだろう。

参考にしようと思ってdfを扱っている部分を見てみると
/usr/share/logwatch/scripts/services/zz-disk_space.conf
(話は違うがオーバーライドさせたいなら、
/etc/logwatch/conf/services/zz-disk_space.conf
ここに書き込んどいたほうが安全。)
1行で簡単にすむと思ったらそうでもない。
違う方法の方がよさげ。
ログに結果を出してそれを読ませるとか・・・。

ちなみに
/usr/share/logwatch/scripts/services/
に並んでいるサービスのオン・オフ切り替えは、logwatch.confのServiceで設定できる。
---CentOS6のconf----------------------------------------
Service = All
# You can also disable certain services (when specifying all)
Service = "-zz-network"     # Prevents execution of zz-network service, which
                            # prints useful network configuration info.
Service = "-zz-sys"         # Prevents execution of zz-sys service, which
                            # prints useful system configuration info.
Service = "-eximstats"      # Prevents execution of eximstats service, which
                            # is a wrapper for the eximstats program.
-------------------------------------------
Allで全部をオンにしておいて、不必要なものに"-"をつけている。


logwatchの設定ファイル置き場。
優先順位は一番下が一番優先される。
/usr/share/logwatch/default.conf/logwatch.conf
/usr/share/logwatch/dist.conf/logwatch.conf
/etc/logwatch/conf/logwatch.conf
/etc/logwatch/conf/override.conf


実行するにはそのまま
logwatch



logwatch本体
/usr/share/logwatch/scripts/logwatch.pl

bash cronを止めるスクリプト

自サーバーで常時動いているapacheのプロセスは8つ。

それプラスその時々のapacheのプロセスが立ち上がったり終了したりしている。

で、最近あるプログラムが原因でうまく終了しないプロセスがたまにできてしまう。
それはkillしても消えない。
そうなるとOS自体の再起動になるのだが、一旦つまずいたのを気づかずに放っておくと、cronで起動しているものだからプロセスがどんどん増えていってしまう。

根本的な解決ができるまで、プロセスが増えてしまった時にメールで知らせるのと同時にそのcronを止めるスクリプト。

------------最終型  test.sh-----------------------
#!/bin/bash

#apacheのプロセス数
apanum=`grep -c 'apache' <(ps aux)`

#apacheのプロセス表示
apaer=`ps -u apache -f`

if [ $apanum -gt 100 ]; then

#echo 'more than 100'
mv /etc/cron.d/hoge /etc/con.d/.hoge
ps -u apache -f | mail -s ${apanum} Apache Process hoge@hoge.com

else
#echo 'less than or equal to 100'
#必要ならチェックしたことをログに残しておく。
:
fi

--------------------------------------

cronを止める仕組みは、
/etc/cron.d/hoge
というcronファイルhogeを.hogeと隠しファイルにすると動作が止まるので、その事を利用する。

で、次。
テストとしてapacehのプロセス数の確認で下のようにスクリプトを書いたら動かない
-----------------------
#!/bin/bash

if [ ps aux | grep -c 'apache' > 100 ]; then
echo 'more than 100'
else
echo 'less than 100'
fi

-------------------------
上の赤いところがダメなところだった。
で、こう直した。
------------------------
apanum=`grep -c 'apache' <(ps aux)`
if [ $apanum -gt 100 ]; then
echo 'more than 100'
else
echo 'less than 100'
fi
---------------------------

まず最初にシェルスクリプトでは、'<'とか、'>'を数値比較には使わないらしい。
A>B が A -gt B
A<B が A -lt B
となるそうだ。知らなかった。

あとは、パイプ(とリダクション)はパイプによって渡された後のコマンドが別のプロセスとして動くのでパイプ後のコマンドの結果をスクリプトで使うことはできないのだそうだ。(mailコマンドはパイプでつないでも動いた。)

上スクリプトのエラーとして
./hoge.sh: line 11: [: missing `]'
grep: ]: No such file or directory
が出た。
パイプが認識されていないならこういうエラーになるよなぁ。

この場合、プロセス置換(Process substitution)を使うか、一旦どこか一時ファイルに書き出してそれを読み込むしかないそうだ。
(プロセス置換も一時ファイルに書き出すことを裏(子プロセス)でやっているだけだから、やっていることは自分で書き出すのと一緒だそうだ。(実際、自分のCentOS6では/dev/fd/の下に一時ファイルが作られている。)

プロセス置換の書き方は、   
<(コマンドリスト)   コマンドの結果をファイルに加工されたもの。
>(コマンドリスト)   出力先をコマンドに渡す。

自分の場合、
<(ps aux)
としてps auxの結果をファイルとして出している。
)
(プロセス置換はbashでは動くがshでは動かないそうだ。)

*ここで「/bin/sh」と「/bin/bash」の違いの説明。
「/bin/sh」は「/bin/bash」へのシンボリックリンク。
でも「sh という名前で bash を起動すると、 bash は古くからある sh の起動動作をできるだけ真似しようとします。」ということだそうだ。




2017年7月5日水曜日

linux CentOS 複数フォルダのファイル群からテキスト文字を検索する。串刺し検索 WindowsではDevasを使っている。

複数ディレクトリのファイル群からテキスト文字を検索するのにWindowsではDevasを使っている。秀丸でgrepを使えばフォルダの串刺し検索ができるのを後から知った。

Linux系では、コマンドで

find ./ -type f -print | xargs grep 検索文字

find . -name "*.php" | xargs grep 検索文字

-type f ディレクトリではなくファイルを探す。(-type d ファイルではなくディレクトリ)
-printはなくてもいい。
xargs 受け取ったファイルの一覧を次のコマンドへ渡す。
grep 受け取ったファイルの中から指定された文字列のある行を抜き出す。

---------------------------------------------------------------------------
xargsの使い方。
(便利そうな使い方を集めた。)

hogedirディレクトリ内のファイルを、/tmpディレクトリ以下に拡張子「.bup」を付けてコピーする。
$ ls hogedir | xargs -I{} cp hogedir/{} /tmp/{}.bup


180日以上更新されていないファイルを削除する
 find . -mtime +180 -type f | xargs rm

ディレクトリに次のファイルが存在する場合。
Filea
Fileb
Filec
FILE と書いた部分が、実際のファイル名に変換される。
$ ls | xargs -I FILE echo "FILE hogehoge"

File_A hogehoge
File_B hogehoge
File_C hogehoge

2017年5月27日土曜日

CentOS で、Windows のファイルを見る。 共有

CentOSからWindowsの共有フォルダーを見れるようにする。

最初に、CentOS側にマウントポイントを作る。
mkdir -p /mnt/windows

Windows機のIPアドレスを探すために、ARPテーブルなどを表示させる。
arp

ここで探したアドレスを使ってマウント、共有させる。
mount -t cifs //WindowsのIPアドレス/フォルダ /CentOSのマウントポイント
mount -t cifs //name.hoge.com/Videos /mnt/windows
mount -t cifs //192.168.1.55/Videos /mnt/windows

アンマウント
umount /mnt/windows
うまくいかないときは
umount -l /mnt/windows

2017年5月11日木曜日

CentOS6 Dovecot メールサーバー メールソフト

久しぶりにCentOS上のメールサーバーにWindows10のメールソフト(Becky)からつなごうとしたら、つながらない。

telenetでimap,popのポートを確認するとrefusedとなってしまう。

smtpポートはちゃんと通る。

ポートがふさがっているのかなぁと思って、iptablesとか見てみたけど、ローカルでのメールはふさいでいない。

chkconfig --list dovecot
とすると、ちゃんとオンになっている。(だから動いているはずだと思ったのが間違えだった。)

その後、いろいろな設定をくるくる見回ることになったのだけど、でも、うまくいかず。

で、何気にDovecotのリスタート
service dovecot restart
をかけてみたら、
起動エラー。

要するに、起動してなかったということだった。
で、その時に出たエラー
Starting Dovecot Imap: Error: socket() failed: Address family not supported by protocol
を検索したところ、
「IPv6を無効にしているとDovecot Ver2からは起動に失敗する。」
自分は、今、IPv6を無効にしている。(今はIPv6を無効にしなくてもスムーズに動くようになってきたらしい。)
で、
/etc/dovecot/dovecot.conf

#listen = *, ::

listen = *
にしたら、普通に起動した。

2015年11月15日日曜日

CentOS メモリー hddの残量を調べる コマンド free df

メモリの使用量

free -m
(mはメガバイト表示させるためのオプション。)

で表示された-/+ buffers/cache:
のところを見る。


自分の場合は8G積んでいて、1Gくらいしか使っていなかった。
WindowsのPCにBFD3をインストールしたら、8Gのメモリーでは足りなくなった。
メモリーはこれから買うならDDR4だし、古いPC(DDR3使用)のためにわざわざDDR3のメモリーを買うのもなんだしなぁ。と思った。
で、メモリーに余裕のありそうなCentOSのPCから持ってこれないかなぁ。と思い。
その使用量を調べてみた。

hddの使用量

df -h

hは、わかりやすく表示させるためのオプション


ディレクトリの総使用量

du -hs /hogehoge

sは、総使用量


マウントされているファイルを調べる。
mount



2015年6月24日水曜日

centos ipv6 無効にする。

最近、ネット表示が遅くなった。
待ち時間がすごくかかるページが多くなった。

もしやと思って、チェックしたら、ipv6が有効になっている。
以前、ipv6を無効にしたはずだけど、アップデートしたときに有効に逆戻りした。(のかな?)
で、また、無効にした。


# vi /etc/sysconfig/network
NETWORKING_IPV6=no

ipv6.confファイルを作る。
#vi /etc/modprobe.d/ipv6.conf
 options ipv6 disable=1

# chkconfig --list

# chkconfig ip6tables off

2015年3月18日水曜日

logwatch メールが来たり来なかったり gmail 迷惑メールになってしまう

何でだろう。
と思っていたら、Gmailの迷惑メールフォルダに入ったり入らなかったりしていた。

迷惑メールではない。にチェックを入れても、一か月位たつとまた迷惑メールになってしまっている。

対処法。
gmailのブラウザー版の設定タブ
フィルタとブロック中のアドレス
で、
条件を対象メールアドレスに設定して、
処理を迷惑メールにしないにする。