配列の重複を数える処理メモ
便利だけど書き方すぐ忘れるよ・・・
using System; using System.Collections.Generic; using System.Linq; public class Hello{ public static void Main(){ List<string> dataList = new List<string>() { "HND", "NRT", "KIX", "NGO", "NGO", "NGO", "NGO", "NGO" }; var duplicationList = dataList .GroupBy(i => i) .Where(g => g.Count() > 1) .Select(g => new { word = g.Key, duplicationCount = g.Count() }) .ToList(); foreach(var item in duplicationList) { Console.WriteLine("{0}:{1}個", item.word, item.duplicationCount); } } }
CENTOS7 IPアドレス固定化
この記事を参考
これだけ直してシステムをrestartすればイケる感じ
DEVICE="enp3s0" ONBOOT=yes NETBOOT=yes UUID="0ebc2621-6086-4d9a-a15d-c52cdf6ade01" IPV6INIT=no -BOOTPROTO=dhcp HWADDR="08:00:27:bf:e6:ec" TYPE=Ethernet NAME="enp3s0" +BOOTPROTO=static +DNS1="8.8.8.8" +DNS2="8.8.4.4" +DOMAIN=mydomain.com +IPADDR=192.168.100.11 +NETMASK=255.255.255.0 +GATEWAY=192.168.100.1
よく使うlinuxコマンド一覧
したい事 | コマンド |
---|---|
特定のファイルシステムの容量を確認したい | df -h /var/www/ |
特定のファイルを検索したい | find / -name *.txt* |
IPアドレスと正規表現1
〇IPv4表記のチェック
/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]))$/
正規表現チェッカーで確認
http://okumocchi.jp/php/re.php
〇CIDR表記に合わせてIPアドレスをレンジ指定できるexcel関数を考える
IPアドレスの使える範囲によってA-Cまでのクラス分けがある
↓以下、YYYYが使える桁
クラスA:XXXX.YYYY.YYYY.YYYY
クラスB:XXXX.XXXX.YYYY.YYYY
クラスC:XXXX.XXXX.XXXX.YYYY
IPのレンジはクラスごとにCIDRの数値が大きくなるほど使用できる桁数が減る為、レンジの幅が狭まる
レンジが狭まる=使用できるIPアドレスの範囲が狭くなるため、レンジ開始位置のバリエーションが増える
例)
/8 =>11111111 00000000 00000000 00000000=>255.0.0.0 =>XXXX.0.0.0-XXXX.255.255.255=>クラスB256個分
/15=>11111111 11111110 00000000 00000000=>255.254.0.0=>XXXX.0.0.0-XXXX.1.255.255 =>クラスB2個分
レンジ指定の参考記事
https://www.mrl.co.jp/download/manual-online/gl2000/gl2000_02/manual/docs/netlistb.htm#list
https://wa3.i-3-i.info/word11990.html
〇処理手順
・CIDRのパターンとレンジ指定の組み合わせは決まっているので対象のIPアドレスとCIDR表記からクラス、CIDR、レンジの開始位置を判定する
・判定結果を元にレンジを決定する
・決定されたレンジを元に正規表現を作成する
snmpトラップをやってみる2
■MIBについて
監視している機器の情報のツリー構造で体系化している
mib-2がスタンダードで多くの機器がサポートしている
MIBの内容や表示方法については体系的な説明が難しいため、必要なものを必要な分だけ調べて使う
▼ポーリング
特定の時間にSNMPマネージャーから実行して確認したい情報を取得する
対象機器の全ツリーの情報を表示する
snmpwalk -c public -v 2c 192.168.3.36 .
▼トラップ
特定のエラー条件を満たした場合(条件は別途設定する必要がある)、SNMPエージェントから送信される
エラーに関係するMIB情報(サブツリー名、起動時間など)を把握するのが目的
数字の表記でもサブツリー表記でも送信することができる
(例:同じ内容で送信している↓)
【OID表記】
snmptrap -v 2c -c public 192.168.3.40 '' 1.3.6.1.2.1.1.1.0 1.3.6.1.4.1.3.1.1 s "TEST"
【サブツリー表記】
snmptrap -v 2c -c public 192.168.3.40 '' sysDescr 1.3.6.1.4.1.3.1.1 s "TEST"
オプションは左から…
・バージョン
・コミュニティ名
・送信先IP
・時間(''の場合はsystemが起動してからの時間を0.01秒=1でカウント)
・OID(サブツリー名)
・デスクリプション※1
・データ型
・任意の文字列
※1
1.3.6.1.4.1.3.1.1はDESCRIPTIONで文字列を一緒に飛ばすことができる
【参考】MIBについての記事
https://www.itmedia.co.jp/help/howto/linux/0007master/06/12.html
https://qiita.com/Mabuchin/items/d435c0afb4f0ca17ad25
http://vre.sakura.ne.jp/cgi-bin/pukiwiki/index.php?UNIX%2FSNMP#gceabf8d
https://www.itmedia.co.jp/help/howto/linux/0007master/06/
redmineの気になる機能QA
redmineのQA
Q.デフォルトのチケット項目は非表示にできるか
A.トラッキングの設定からできる
Q.デフォルトのチケット項目の項目名を変更できるか
A.設定ファイルを変更すればいけるらしい
http://blog.enjoyxstudy.com/entry/2015/12/05/000000
Q.ワークフロー:ロールとトラッカーによってチケットの遷移できるステータスを調整できる
A.新規から進行中以外を選べなくするなど
Q.サブプロジェクト
A.プロジェクトの子になるプロジェクトを作成する機能
Q.チケットに特定のユーザしか閲覧できない項目を作りたい
A.プライベートコメントを使えば特定のロールのユーザだけが確認できるコメントを作成できる。非表示のゆーざは履歴にも表示されない
snmpトラップをやってみる1
・vitualboxでsnmpの動作確認
×snmpwalk -v 2c -c public 192.168.3.255
parmission denyされる
×traceroute 192.168.3.255
・ポート開放確認
nmap -p ポート番号 IPアドレス
・firewall-cmdでポートをsnmpサービスのportを開けた
firewall-cmd --add-service snmp
firewall-cmd --list-all
・ipアドレスが間違っていたので修正して実行
snmpwalk -v 2c -c public 192.168.3.32
・起動する度にIPが変わるのがやだったのでIPアドレス固定した
https://qiita.com/tak_hos/items/9c9fd6463a7c3c01b4d3
snmptrap -v 2c -c publicv2 192.168.3.32 '' netSnmpExperimental netSnmpExperimental.1 s "hogehoge1" netSnmpExperimental.2 s "hogehoge2"
ホストサーバをIP固定にしたときにgatewayのIPを設定していなかった
vi /etc/sysconfig/network
GATEWAY=192.168.3.1
systemctl restart network
・rpmdbが壊れてyumが動かなった
sudo rpm --rebuilddb
https://kaworu.jpn.org/kaworu/2015-11-14-1.php
・とりあえずtrapが届くようになった /var/log/message
snmptrap -v 2c -c publicv2 192.168.3.32 '' netSnmpExperimental netSnmpExperimental.1 s "hogehoge1" netSnmpExperimental.2 s "hogehoge2"
・dropinしているので設定ファイルを修正
/etc/snmp/snmptrapd.conf
authCommunity log,execute,net public
https://www.infra.jp/squeeze/snmp.html
※snmptrapを受信するにはサーバ側にもnet-snmpをいれてサービスを起動しておく必要がある
・テストで投げていたtrapのコミュニティ名が間違っていたので修正
snmptrap -v 2c -c public 192.168.3.32 '' netSnmpExperimental netSnmpExperimental.1 s "hogehoge1" netSnmpExperimental.2 s "hogehoge2"
・この当たりの記事が良かった
https://www.itmedia.co.jp/enterprise/articles/0705/31/news042.html
・MIBツリーを表示する。
snmptranslate -Tp | less
・/var/log/messageから個別のログファイルにログを出力
・MIBシンボル
snmpwalk -c public -v 2c 192.168.3.36 .1.3.6.1.2.1.1
・OID
snmpwalk -On -c public -v 2c 192.168.3.36 .1.3.6.1.2.1.1
・最後に0を入れると単一
snmpget -On -c public -v 2c 192.168.3.36 .1.3.6.1.2.1.1.4.0