情シス - 雑多メモ

基本は情シス、たまに開発を担当

CentOS 7ではまったこと:/var/run直下のディレクトリが消える

CentOS7 系の /var/run ディレクトリは /run ディレクトリのシンボリックリンク
実態の/runディレクトリは tmpfs ファイルシステムでマウントされています。

$ ls -ld /var/run
lrwxrwxrwx. 1 root root 6  2月 18  2016 /var/run -> ../run

$ df -k
ファイルシス            1K-ブロック    使用  使用可 使用% マウント位置
/dev/mapper/centos-root     8869888 1055424 7814464   12% /
devtmpfs                     498144       0  498144    0% /dev
tmpfs                        508388       0  508388    0% /dev/shm
tmpfs                        508388    6600  501788    2% /run
tmpfs                        508388       0  508388    0% /sys/fs/cgroup
/dev/vda1                    508588  126316  382272   25% /boot
tmpfs                        101680       0  101680    0% /run/user/0

ちなみに CentOS6系の/var/runは実在するディレクトリです。

$ ls -ld /var/run
drwxr-xr-x. 14 root root 4096  4月  5 17:14 2017 /var/run


よって、OSを再起動すると、/run (/var/run)に置かれたファイル・ディレクトリは全て削除されてしまいます。
今回は ZabbixAgentd の PID ファイル(/var/run/zabbix/zabbix_agentd.pid)が作れず起動失敗していたことで発覚しました。


対応方法

systemd の systemd-tempfiles に要因
システム起動時にファイル・ディレクトリが自動的に作成されるようにする

/etc/tmpfiles.d に設定ファイルを作成する

$ vi /etc/tmpfiles.d/hoge.conf

以下のように記述する

#Type   Path                    Mode    UID     GID   Age  Argument
d       /var/run/hoge           0755    hoge    hoge  -

記述は /usr/lib/tmpfiles.d ディレクトリ内に既に多くの設定ファイルが保存されているのでそちらを参考に

ちなみにシンボリックリンクを作成したい場合は以下のように記述する

#Type   Path                    Mode    UID     GID   Age  Argument
d       /var/run/hoge           0755    hoge    hoge  -
L+      /var/run/hogelink       -       -       -     -    /var/run/hoge


※/usr/lib/tmpfiles.d < /etc/tmpfiles.d が優先される

rpmコマンドメモ ~rpmパッケージの詳細を確認したい~

gccを例に



■インストール済みの特定パッケージの詳細を確認したい

$ rpm -qi gcc

[出力例]

Name        : gcc
Version     : 4.8.5
Release     : 4.el7
Architecture: x86_64
Install Date: yyyymmdd hh:mm:ss
Group       : Development/Languages
Size        : 39010978
License     : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Signature   : RSA/SHA256, yyyymmdd hh:mm:ss, Key ID xxxxxxxx
Source RPM  : gcc-4.8.5-4.el7.src.rpm
Build Date  : yyyymmdd hh:mm:ss
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://gcc.gnu.org
Summary     : Various compilers (C, C++, Objective-C, Java, ...)
Description :
The gcc package contains the GNU Compiler Collection version 4.8.
You'll need this package in order to compile C code.


■インストール前にrpmパッケージの詳細を確認したい

$ rpm -qip <rpmファイル名>

 上記と同じ出力結果


■インストールされたファイルのリストを確認したい

$ rpm -ql gcc

 

Zabbixサーバ fping設定

ZabbixでICMP Pingを使用する場合は、fpingユーティリティが必要
(試した環境はZabbix-2.4.5)

[zabbix_server.conf]

### Option: FpingLocation
# Location of fping.
# Make sure that fping binary has root ownership and SUID flag set.
#
# Mandatory: no
# Default:
# FpingLocation=/usr/sbin/fping

デフォルトは /usr/sbin/fping

 

インストールされていない場合はfpingをrpmなどで入手し、手動インストール


インストール後は、Zabbixユーザがfpingを実行できるように、パーミッション変更する。

[変更前]

$ ls -l /usr/sbin/fping
-rwsr-xr-x 1 root root 27776  7月  6  2010 /usr/sbin/fping

 

[変更]

$ chown root:zabbix /usr/sbin/fping
$ chmod 710 /usr/sbin/fping
$ chmod ug+s /usr/sbin/fping

$ ls -l /usr/sbin/fping
-rws--s--- 1 root zabbix 27776  7月  6  2010 /usr/sbin/fping

 

Subversion リポジトリ作成~初期設定メモ

~前書き~
Apache-2.4 + mod_dav_svn 構成
SVNクライアント(TortoiseSVN)からhttpアクセス
httpd.conf : <Location /svnTest>
SVNParentPath : /svn/svn_Test

 
リポジトリの作成

$ cd <httpd.confのSVNParentPathで指定したパス>
$ svnadmin create <リポジトリ名>
$ chown -R apache:apache <リポジトリ名>

■trunk, branches, tagsの作成

$ cd /tmp  <--どこでもOK
$ svn co file:///svn/svn_Test/<リポジトリ名> <リポジトリ名> --no-auth-cache
$ cd <リポジトリ名>  <--/tmp/<リポジトリ名>
$ svn mkdir trunk branches tags
$ svn commit -m "Initial Commit" --username admin --password <adminのパスワード> --no-auth-cache
$ svn list file:///svn/svn_Test/<リポジトリ名>
$ cd ..
$ rm -rf /tmp/<リポジトリ名>

 
SVNディレクトリのlsを調べる

$ svn ls http://<SVNサーバIP>/svnTest/<リポジトリ名>/trunk

 

■既存リポジトリ領域からチェックアウトする

$ cd <作業領域など>
$ svn co http://<SVNサーバIP>/svnTest/<リポジトリ名>/trunk <リポジトリ名>

jQuery はじめに

jQuery入門

JQueryを始めるための覚書きです。

jQueryを使用したいページのHEADタグ内に、jQueryを呼び込むためのタグを記載する

パターン:1
  jQueryのダウンロードページから入手し、srcディレクトリ等に配置

<head>
 ~
<script type="text/javascript" src="js/jquery.js"></script>
 ~
</head>

パターン:2
  CDNを利用

<head>
 ~
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/x.x.x/jquery.min.js"></script>
 ~
</head>

※当然インターネット接続していないと使えない

 補足:jQuery には圧縮版の Minified と、非圧縮版の Uncompressed があって、一般的には読み込みの早い圧縮版を使います。圧縮版は改行などが排除されていて、ファイル名が jquery-1.6.4.min.js のように min がついてるのがそうです。数字はバージョンを表しています。


②コードを記載する場所
 jQueryのコードは、HEDAタグ内の、jQuery本体のコードの後ろに記載すること
 ※CSSを読み込む場合は、CSSのほうが上になるように

 というわけで、こんな感じの順序にする

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/style.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/script.js"></script>
</head>


jQueryの基本文法

$(function(){
    $("A").B(C)
});

  A:セレクタ ・・・divタグ等、class要素を指定するところ
  B:メソッド ・・・Aの要素に対して処理を加える部分
  C:パラメタ

  「AをBする」


④サンプル

例:クリックするとhoge1の指定箇所が消えるサンプル
【HTML】

<div class="hoge1">クリックすると消えます</div>

CSS

.hoge1{
    color:#00FF00;
}

【JS】

$(function(){
    $(".hoge1").click(function(){
        $(this).hide()
    });
});