Friday, May 5, 2017

CentOS 7 でiptablesの設定を保存する

何故かこの内容で調べるのに時間が掛かったのでメモしておきます。
最初はiptablesを使ってHTTPのポート80を開いてましたが、
CentOS7ではiptablesではなくfirewalldが本流らしいので、firewall-cmdを使うようです。
firewall-cmd --add-service=http 

再起動後も同様の設定を残したい場合は以下です。
firewall-cmd --add-service=http --permanent

firewall-cmdで設定できるサービスは/usr/lib/firewalld/servicesにあります。
firewall-cmd --add-service=http --permanent
[takeshi@mycentos ~]$ ls /usr/lib/firewalld/services/

amanda-client.xml     freeipa-replication.xml  ldaps.xml        pmwebapis.xml       samba-client.xml  tftp.xml
amanda-k5-client.xml  ftp.xml                  ldap.xml         pmwebapi.xml        samba.xml         tinc.xml
bacula-client.xml     high-availability.xml    libvirt-tls.xml  pop3s.xml           sane.xml          tor-socks.xml
bacula.xml            https.xml                libvirt.xml      pop3.xml            smtps.xml         transmission-client.xml
ceph-mon.xml          http.xml                 mdns.xml         postgresql.xml      smtp.xml          vdsm.xml
ceph.xml              imaps.xml                mosh.xml         privoxy.xml         snmptrap.xml      vnc-server.xml
dhcpv6-client.xml     imap.xml                 mountd.xml       proxy-dhcp.xml      snmp.xml          wbem-https.xml
dhcpv6.xml            ipp-client.xml           ms-wbt.xml       ptp.xml             squid.xml         xmpp-bosh.xml
dhcp.xml              ipp.xml                  mysql.xml        pulseaudio.xml      ssh.xml           xmpp-client.xml
dns.xml               ipsec.xml                nfs.xml          puppetmaster.xml    synergy.xml       xmpp-local.xml
docker-registry.xml   iscsi-target.xml         ntp.xml          radius.xml          syslog-tls.xml    xmpp-server.xml
dropbox-lansync.xml   kadmin.xml               openvpn.xml      RH-Satellite-6.xml  syslog.xml
freeipa-ldaps.xml     kerberos.xml             pmcd.xml         rpc-bind.xml        telnet.xml
freeipa-ldap.xml      kpasswd.xml              pmproxy.xml      rsyncd.xml          tftp-client.xml
この一覧にないサービスを起動したいばあいは手作業でxmlファイルを作成することになります。

ポートを直接指定して開通することも可能です。
[takeshi@mycentos ~]$ sudo firewall-cmd --add-port=1818/tcp

削除する場合は--remove-portします。
[takeshi@mycentos ~]$ sudo firewall-cmd --remove-port=1818/tcp

Thursday, May 4, 2017

Gmail API を使って最初にMessageをダウンロードするときに設定する権限

Gmail APIを試してみようと思ったら最初にサンプルにあるQuick Startを実装してみてラベルの一覧を出してみると思います。
そのあと、メッセージの一覧を取得しようということになると思いますが、
私の様によく考えないで最短距離を行こうとするとこのメッセージでエラーになります。
Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Insufficient Permission",
    "reason" : "insufficientPermissions"
  } ],
  "message" : "Insufficient Permission"
}

チュートリアルにはGoogle APIで権限の設定について
手取り足取り書いてくれていないので、
これを説明しておいて欲しかったということを下記に。

Quick Startサンプルではこうなっていると思います。
    /** Global instance of the scopes required by this quickstart.
     *
     * If modifying these scopes, delete your previously saved credentials
     * at ~/.credentials/gmail-java-quickstart
     */
    private static final List SCOPES =

            Arrays.asList(GmailScopes.GMAIL_LABELS);

これを以下の様に
    private static final List SCOPES =
            Arrays.asList(GmailScopes.GMAIL_READONLY);

あるいはこんな風に
    private static final List SCOPES
    Arrays.asList(GmailScopes.MAIL_GOOGLE_COM);

その他authorizationの中から一つ以上を選んで下さい。

これでMessageにアクセスする権限がつく筈ですが、
Quick Startのソースを流用して作成していると上手く行きません。

実は下記のパスに権限情報のファイルをキャッシュしているので、
このファイルを削除してクリアするか、


ファイルのパスをQuick Startのものから変更しないといけません。

/** Directory to store user credentials for this application. */
private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"),
".credentials/gmail-java-quickstart");

以上でQuick Startサンプルからの修正で





Tuesday, May 2, 2017

Linux CPU使用率確認

Linux CPU Usage
 topコマンドを使えば、CPUの使用率とメモリの使用量が一覧で見れます。

[takeshi@mycentos ~]$ top
top - 19:19:16 up 1 day, 19:31,  2 users,  load average: 0.04, 0.04, 0.05
Tasks: 190 total,   1 running, 189 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7898360 total,  5946684 free,   675088 used,  1276588 buff/cache
KiB Swap:  8126460 total,  8126460 free,        0 used.  6759548 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  956 root      20   0   24192   1744   1416 S   0.3  0.0   0:05.92 systemd-logind
    1 root      20   0  193764   6948   3968 S   0.0  0.1   0:29.09 systemd

ただ、CPUのコア毎の使用率を見たい時は「mpstat」コマンドを使うと便利です。
下記のコマンドで1秒おきのコアスレッド毎の使用率が見れます。

[takeshi@mycentos ~]$ mpstat -P ALL 1
Linux 3.10.0-514.16.1.el7.x86_64 (mycentos)     05/02/2017      _x86_64_        (4 CPU)

07:25:24 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
07:25:25 PM  all    0.00    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.75
07:25:25 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:25 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:25 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:25 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

07:25:25 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
07:25:26 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:26 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:26 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:26 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:26 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

07:25:26 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
07:25:27 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:27 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:27 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:27 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
07:25:27 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
perf statでも見れるらしいが、sudoして動かすと動作がイマイチ。