kernel 3.10.0-327.3.1 起動できない

新しい年になったので、自宅サーバーも新たな気持で再稼働と思いリブートしたら起動できなくなった!! どうもkernelが 3.10.0-327.3.1 にバージョンアップしてたみたいで、Kernel panicが発生してるようだ。 最新kernelは自宅サーバーに使ってる HP ProLiant MicroServer との相性が悪いみたいだ。 仕方ないので一つ前のkernelでブートして、解決策をGoogleで調べたら /etc/default/grub のGRUB_CMDLINE_LINUX=”…”にKernelパラメータ initcall_blacklist=clocksource_done_booting を追記することでKernel panicを回避できるという情報があった。

■ということで /etc/default/grub を編集

[root@server2 ~]# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=jp106 rd.lvm.lv=centos/root crashkernel=auto  rhgb quiet"

 ↓ initcall_blacklist=clocksource_done_bootingを追記

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=jp106 rd.lvm.lv=centos/root crashkernel=auto  rhgb quiet initcall_blacklist=clocksource_done_booting"
GRUB_DISABLE_RECOVERY="true"

■次のコマンドを実行してブートローダーの設定を更新

[root@server2 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.3.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.3.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.20.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.20.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.14.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.14.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.11.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.11.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-229.7.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-229.7.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-30cdb5e79c4c42df8e8ac6d86d8ab745
Found initrd image: /boot/initramfs-0-rescue-30cdb5e79c4c42df8e8ac6d86d8ab745.img
done

rebootするとkernel 3.10.0-327.3.1で起動することができた。

GNOMEデスクトップでも問題が発生して、ログインし直せとかいうメッセージが出るようになった。こちらはとりあえず、ランレベルをCLIログインに変更して対処することにした。

■現在のランレベル確認

[root@server2 ~]# systemctl get-default
graphical.target

■multi-user.targetのCLIログインに変更

[root@server2 ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

CentOS 7 vsftpdインストール

■FTPサーバのインストール

[root@server1 ~]# yum install vsftpd

■FTPサーバの設定ファイル変更

[root@server1 ~]# vi /etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.

匿名ユーザ(anonymous)はログイン禁止(YES→NO)
anonymous_enable=NO

ユーザが打ち込んだ詳細なログを残す
xferlog_std_format=NO  (YES→NO)
log_ftp_protocol=YES   (次の行へ追加)

アイドル時のタイムアウトを設定(#を削除)
idle_session_timeout=600

接続時のタイムアウトを設定(#を削除、120→60)
data_connection_timeout=60

アスキーモードでのアップロードを許可する(#を削除)
ascii_upload_enable=YES

アスキーモードでのダウンロードを許可する(#を削除)
ascii_download_enable=YES

ホームディレクトリより上へのアクセスを禁止する(#を削除)
chroot_local_user=YES

ホームディレクトリより上へアクセスできるユーザリストファイルを利用可能にする(#を削除)
chroot_list_enable=YES

ホームディレクトリより上へアクセスできるユーザリストファイル(#を削除)
chroot_list_file=/etc/vsftpd/chroot_list

ディレクトリを削除できるようにする(#を削除)
ls_recurse_enable=YES

パッシブモードを有効にする(最下行へ追加)
pasv_promiscuous=YES

タイムスタンプ時間を日本時間に変更(最下行へ追加)
use_localtime=YES

■FTP接続ユーザ設定

ホームディレクトリより上へアクセスできるユーザリスト
[root@server1 ~]# vi /etc/vsftpd/chroot_list
例:ユーザ「higo」は、自ホームディレクトリーより上にアクセスできる
higo

■ FTPアクセス制限
サーバー自身、内部ネットワークからのアクセスを許可

[root@server1 ~]# echo "vsftpd : 127.0.0.1 192.168.1." >> /etc/hosts.allow

上記以外の全てのアクセスを禁止

[root@server1 ~]# echo "vsftpd : ALL" >> /etc/hosts.deny

■FTPサーバの起動

[root@server1 ~]# systemctl start vsftpd.service

■FTPサーバの自動起動設定

[root@server2 ~]# systemctl enable vsftpd.service
[root@server2 ~]# systemctl status vsftpd.service
vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled)
   Active: active (running) since 水 2014-07-16 00:57:09 JST; 9min ago
  Process: 1022 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
 Main PID: 1025 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─1025 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

 7月 16 00:57:09 server2.yokensaka.com systemd[1]: Starting Vsftpd ftp daemon...
 7月 16 00:57:09 server2.yokensaka.com systemd[1]: Started Vsftpd ftp daemon.

■外部からの接続
外部からの接続には、ルーターの設定で20番と21番のポートを開ける必要がある。

cron.hourly エラーメール

cron.hourly から以下の様なメールが届いた。

/etc/cron.hourly/0yum-hourly.cron:

Not using downloaded repomd.xml because it is older than what we have:
  Current   : Thu Oct 22 08:25:28 2015
  Downloaded: Wed Oct 21 04:02:20 2015

yumは、1度ダウンロードしたファイルは/var/cache/yum/にキャッシュとして保存するが、長期運用しているとサイズが肥大化するためyum cleanで定期的に削除する必要がある。

yumのキャッシュがどれ位利用されてるか調べる。下記の例では119Mバイト利用されていることが分かる。

[root@server1 ~]# du -sh /var/cache/yum/
119M    /var/cache/yum/

yumのキャッシュを削除

[root@server1 ~]# yum clean all
読み込んだプラグイン:fastestmirror, langpacks, priorities
リポジトリーを清掃しています: base centosplus epel extras rpmforge updates
Cleaning up everything
Cleaning up list of fastest mirrors

パッケージのアップデート

[root@server1 ~]# yum update
読み込んだプラグイン:fastestmirror, langpacks, priorities
base                                                                         | 3.6 kB  00:00:00
centosplus                                                                   | 3.4 kB  00:00:00
epel/x86_64/metalink                                                         | 5.8 kB  00:00:00
epel                                                                         | 4.3 kB  00:00:00
extras                                                                       | 3.4 kB  00:00:00
rpmforge                                                                     | 1.9 kB  00:00:00
updates                                                                      | 3.4 kB  00:00:00
(1/8): base/7/x86_64/group_gz                                                | 154 kB  00:00:00
(2/8): epel/x86_64/group_gz                                                  | 169 kB  00:00:00
(3/8): epel/x86_64/updateinfo                                                | 370 kB  00:00:00
(4/8): extras/7/x86_64/primary_db                                            |  88 kB  00:00:00
(5/8): epel/x86_64/primary_db                                                | 3.6 MB  00:00:00
(6/8): centosplus/7/x86_64/primary_db                                        | 1.9 MB  00:00:01
(7/8): base/7/x86_64/primary_db                                              | 5.1 MB  00:00:02
(8/8): updates/7/x86_64/primary_db                                           | 4.0 MB  00:00:02
rpmforge/primary_db                                                          | 125 kB  00:00:00
Determining fastest mirrors
 * base: ftp.jaist.ac.jp
 * centosplus: ftp.jaist.ac.jp
 * epel: ftp.riken.jp
 * extras: ftp.jaist.ac.jp
 * rpmforge: ftp.riken.jp
 * updates: ftp.jaist.ac.jp
88 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.7.0-openjdk.x86_64 1:1.7.0.85-2.6.1.2.el7_1 を 更新
---> パッケージ java-1.7.0-openjdk.x86_64 1:1.7.0.91-2.6.2.1.el7_1 を アップデート
---> パッケージ java-1.7.0-openjdk-headless.x86_64 1:1.7.0.85-2.6.1.2.el7_1 を 更新
---> パッケージ java-1.7.0-openjdk-headless.x86_64 1:1.7.0.91-2.6.2.1.el7_1 を アップデート
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                           アーキテクチャー
                                                バージョン                      リポジトリー   容量
====================================================================================================
更新します:
 java-1.7.0-openjdk                x86_64       1:1.7.0.91-2.6.2.1.el7_1        updates       204 k
 java-1.7.0-openjdk-headless       x86_64       1:1.7.0.91-2.6.2.1.el7_1        updates        25 M

トランザクションの要約
====================================================================================================
更新  2 パッケージ

総ダウンロード容量: 25 M
Is this ok [y/d/N]: y
Downloading packages:
updates/7/x86_64/prestodelta                                                 | 250 kB  00:00:00
Delta RPMs reduced 25 M of updates to 1.5 M (94% saved)
(1/2): java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1_1.7.0.91-2.6.2.1.el7_1.x86_ |  40 kB  00:00:00
(2/2): java-1.7.0-openjdk-headless-1.7.0.85-2.6.1.2.el7_1_1.7.0.91-2.6.2.1.e | 1.4 MB  00:00:00
Finishing delta rebuilds of 2 package(s) (25 M)
----------------------------------------------------------------------------------------------------
合計                                                                 37 kB/s | 1.5 MB  00:00:40
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  更新します              : 1:java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.1.el7_1.x86_64         1/4
warning: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64/jre/lib/security/US_export_policy.jar created as /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64/jre/lib/security/US_export_policy.jar.rpmnew
warning: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64/jre/lib/security/java.security created as /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64/jre/lib/security/java.security.rpmnew
warning: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64/jre/lib/security/local_policy.jar created as /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64/jre/lib/security/local_policy.jar.rpmnew
  更新します              : 1:java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64                  2/4
  整理中                  : 1:java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64                  3/4
  整理中                  : 1:java-1.7.0-openjdk-headless-1.7.0.85-2.6.1.2.el7_1.x86_64         4/4
warning: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/lib/security/local_policy.jar saved as /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/lib/security/local_policy.jar.rpmsave
warning: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/lib/security/US_export_policy.jar saved as /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/lib/security/US_export_policy.jar.rpmsave
  検証中                  : 1:java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.1.el7_1.x86_64         1/4
  検証中                  : 1:java-1.7.0-openjdk-1.7.0.91-2.6.2.1.el7_1.x86_64                  2/4
  検証中                  : 1:java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64                  3/4
  検証中                  : 1:java-1.7.0-openjdk-headless-1.7.0.85-2.6.1.2.el7_1.x86_64         4/4

更新:
  java-1.7.0-openjdk.x86_64 1:1.7.0.91-2.6.2.1.el7_1
  java-1.7.0-openjdk-headless.x86_64 1:1.7.0.91-2.6.2.1.el7_1

完了しました!

ClamAV 0.98.7 インストール

ClamAVのバージョン0.98.7がepelリポジトリで利用可能になった。rpmforgeのClamAVが0.98.4からなかなかアップデートされないので、epelのClamAV 0.98.7に入れ替えることにした。(4月29日にバージョン0.98.6のインストールとして書いたが、5月9日に0.98.7になったので、ClamAV 0.98.7 インストールに修正)

インストールされてるclamをアンインストール

[root@server2 ~]# yum -y remove clam*

設定ファイルを削除

[root@server2 ~]# rm /etc/cron.daily/clamdscan
[root@server2 ~]# rm /etc/tmpfiles.d/clamd.conf

yumのリポジトリ確認

[root@server2 ~]# cd /etc/yum.repos.d
[root@server2 yum.repos.d]# ls -la
合計 72
drwxr-xr-x.   2 root root  4096  4月 25 14:47 .
drwxr-xr-x. 154 root root 12288  4月 25 10:33 ..
-rw-r--r--    1 root root  1656  9月 14  2014 CentOS-Base.repo
-rw-r--r--    1 root root  1664  8月 23  2014 CentOS-Base.repo.rpmnew
-rw-r--r--    1 root root  1309  4月  1 07:27 CentOS-CR.repo
-rw-r--r--    1 root root   649  4月  1 07:27 CentOS-Debuginfo.repo
-rw-r--r--    1 root root  1331  4月  1 07:27 CentOS-Sources.repo
-rw-r--r--    1 root root  1002  4月  1 07:27 CentOS-Vault.repo
-rw-r--r--    1 root root   290  4月  1 07:27 CentOS-fasttrack.repo
-rw-r--r--    1 root root  1056 11月 26 01:23 epel-testing.repo
-rw-r--r--    1 root root   972  4月 25 14:47 epel.repo
-rw-r--r--    1 root root   739  6月 12  2014 mirrors-rpmforge
-rw-r--r--    1 root root   717  6月 12  2014 mirrors-rpmforge-extras
-rw-r--r--    1 root root   728  6月 12  2014 mirrors-rpmforge-testing
-rw-r--r--    1 root root  1128  1月  2 21:46 rpmforge.repo

2015年5月10日現在、yumでインストール可能なclamパッケージ

[root@server2 yum.repos.d]# cd
[root@server2 ~]# yum list | grep clam
clamav.x86_64                           0.98.7-1.el7          epel
clamav-data.noarch                      0.98.7-1.el7          epel
clamav-filesystem.noarch                0.98.7-1.el7          epel
clamav-lib.x86_64                       0.98.7-1.el7          epel
clamav-update.x86_64                    0.98.7-1.el7          epel
clamav-data-empty.noarch                0.98.7-1.el7          epel
clamav-db.x86_64                        0.98.4-1.el7.rf       rpmforge
clamav-devel.x86_64                     0.98.7-1.el7          epel
clamav-milter.x86_64                    0.98.7-1.el7          epel
clamav-milter-systemd.noarch            0.98.7-1.el7          epel
clamav-milter-sysvinit.noarch           0.98.7-1.el7          epel
clamav-scanner.noarch                   0.98.7-1.el7          epel
clamav-scanner-systemd.noarch           0.98.7-1.el7          epel
clamav-scanner-sysvinit.noarch          0.98.7-1.el7          epel
clamav-server.x86_64                    0.98.7-1.el7          epel
clamav-server-systemd.noarch            0.98.7-1.el7          epel
clamav-server-sysvinit.noarch           0.98.7-1.el7          epel
clamd.x86_64                            0.98.4-1.el7.rf       rpmforg

CentOSの場合、clamはyumリポジトリのepelとrpmforgeの両方で提供されているが、インストールされてるバージョンよりも別のリポジトリのバージョンが新しくなると、yum updateが失敗する問題が発生する。clamの更新は、インストール元以外のリポジトリのclamを除外し、インストール元のリポジトリからのみ行われるようにする

今回は、epelのclamを使うのでrpmforge.repoのclamを除外

[root@server2 ~]# vi /etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 7 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
exclude=clam* ← epelのclamを使うのでrpmforgeのclamは除外
         (yum updateのエラー対策)

rpmforgeが無効になってるか確認

[root@server2 ~]# yum list | grep clam
clamav.x86_64                           0.98.7-1.el7          epel
clamav-data.noarch                      0.98.7-1.el7          epel
clamav-filesystem.noarch                0.98.7-1.el7          epel
clamav-lib.x86_64                       0.98.7-1.el7          epel
clamav-update.x86_64                    0.98.7-1.el7          epel
clamav-data-empty.noarch                0.98.7-1.el7          epel
clamav-devel.x86_64                     0.98.7-1.el7          epel
clamav-milter.x86_64                    0.98.7-1.el7          epel
clamav-milter-systemd.noarch            0.98.7-1.el7          epel
clamav-scanner.noarch                   0.98.7-1.el7          epel
clamav-scanner-systemd.noarch           0.98.7-1.el7          epel
clamav-server.x86_64                    0.98.7-1.el7          epel
clamav-server-systemd.noarch            0.98.7-1.el7          epel
clamav-server-sysvinit.noarch           0.98.7-1.el7          epel

clamavとclamav-updateをインストール

[root@server2 ~]# yum -y install clamav clamav-update
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.yz.yamagata-u.ac.jp
 * centosplus: ftp.yz.yamagata-u.ac.jp
 * epel: ftp.cuhk.edu.hk
 * extras: ftp.yz.yamagata-u.ac.jp
 * rpmforge: ftp.neowiz.com
 * updates: ftp.yz.yamagata-u.ac.jp
84 packages excluded due to repository priority protections
依存性の解決をしています
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> トランザクションの確認を実行しています。
---> パッケージ clamav.x86_64 0:0.98.7-1.el7 を インストール
--> 依存性の処理をしています: clamav-lib = 0.98.7-1.el7 のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: libclamav.so.6(CLAMAV_PUBLIC)(64bit) のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: libclamav.so.6(CLAMAV_PRIVATE)(64bit) のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: data(clamav) のパッケージ: clamav-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: libclamav.so.6()(64bit) のパッケージ: clamav-0.98.7-1.el7.x86_64
---> パッケージ clamav-update.x86_64 0:0.98.7-1.el7 を インストール
--> 依存性の処理をしています: clamav-filesystem = 0.98.7-1.el7 のパッケージ: clamav-update-0.98.7-1.el7.x86_64
--> 依存性の処理をしています: group(clamupdate) のパッケージ: clamav-update-0.98.7-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ clamav-data.noarch 0:0.98.7-1.el7 を インストール
---> パッケージ clamav-filesystem.noarch 0:0.98.7-1.el7 を インストール
---> パッケージ clamav-lib.x86_64 0:0.98.7-1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package                       アーキテクチャー   バージョン                 リポジトリー      容量
====================================================================================================
インストール中:
 clamav                        x86_64             0.98.7-1.el7               epel             806 k
 clamav-update                 x86_64             0.98.7-1.el7               epel              89 k
依存性関連でのインストールをします:
 clamav-data                   noarch             0.98.7-1.el7               epel              95 M
 clamav-filesystem             noarch             0.98.7-1.el7               epel              19 k
 clamav-lib                    x86_64             0.98.7-1.el7               epel             3.7 M

トランザクションの要約
====================================================================================================
インストール  2 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 99 M
インストール容量: 108 M
Downloading packages:
(1/5): clamav-0.98.7-1.el7.x86_64.rpm                                        | 806 kB  00:00:00
(2/5): clamav-filesystem-0.98.7-1.el7.noarch.rpm                             |  19 kB  00:00:00
(3/5): clamav-lib-0.98.7-1.el7.x86_64.rpm                                    | 3.7 MB  00:00:00
(4/5): clamav-update-0.98.7-1.el7.x86_64.rpm                                 |  89 kB  00:00:00
(5/5): clamav-data-0.98.7-1.el7.noarch.rpm                                   |  95 MB  00:00:11
----------------------------------------------------------------------------------------------------
合計                                                                8.9 MB/s |  99 MB  00:00:11
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : clamav-filesystem-0.98.7-1.el7.noarch                               1/5
  インストール中          : clamav-data-0.98.7-1.el7.noarch                                     2/5
  インストール中          : clamav-lib-0.98.7-1.el7.x86_64                                      3/5
  インストール中          : clamav-update-0.98.7-1.el7.x86_64                                   4/5
  インストール中          : clamav-0.98.7-1.el7.x86_64                                          5/5
  検証中                  : clamav-data-0.98.7-1.el7.noarch                                     1/5
  検証中                  : clamav-filesystem-0.98.7-1.el7.noarch                               2/5
  検証中                  : clamav-lib-0.98.7-1.el7.x86_64                                      3/5
  検証中                  : clamav-update-0.98.7-1.el7.x86_64                                   4/5
  検証中                  : clamav-0.98.7-1.el7.x86_64                                          5/5

インストール:
  clamav.x86_64 0:0.98.7-1.el7                  clamav-update.x86_64 0:0.98.7-1.el7

依存性関連をインストールしました:
  clamav-data.noarch 0:0.98.7-1.el7             clamav-filesystem.noarch 0:0.98.7-1.el7
  clamav-lib.x86_64 0:0.98.7-1.el7

完了しました!

2個のパッケージと3個の依存関係のパッケージがインストールされる

clamav-0.98.7-1.el7.x86_64
clamav-update-0.98.7-1.el7.x86_64
clamav-data-0.98.7-1.el7.noarch
clamav-filesystem-0.98.7-1.el7.noarch
clamav-lib-0.98.7-1.el7.x86_64

rpmコマンドでファイルのパスを確認

[root@server2 ~]# rpm -qliv clamav
Name        : clamav
Version     : 0.98.7
Release     : 1.el7
Architecture: x86_64
Install Date: 2015年05月10日 07時33分04秒
Group       : Applications/File
Size        : 2247528
License     : GPLv2
Signature   : RSA/SHA256, 2015年04月30日 22時54分50秒, Key ID 6a2faea2352c64e5
Source RPM  : clamav-0.98.7-1.el7.src.rpm
Build Date  : 2015年04月30日 03時47分04秒
Build Host  : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.clamav.net
Summary     : End-user tools for the Clam Antivirus scanner
Description :
Clam AntiVirus is an anti-virus toolkit for UNIX. The main purpose of this
software is the integration with mail servers (attachment scanning). The
package provides a flexible and scalable multi-threaded daemon, a command
line scanner, and a tool for automatic updating via Internet. The programs
are based on a shared library distributed with the Clam AntiVirus package,
which you can use with your own software. The virus database is based on
the virus database from OpenAntiVirus, but contains additional signatures
(including signatures for popular polymorphic viruses, too) and is KEPT UP
TO DATE.
-rwxr-xr-x    1 root    root                    90376  4月 30 03:46 /usr/bin/clambc
-rwxr-xr-x    1 root    root                    94024  4月 30 03:46 /usr/bin/clamconf
-rwxr-xr-x    1 root    root                   175992  4月 30 03:46 /usr/bin/clamdscan
-rwxr-xr-x    1 root    root                   172008  4月 30 03:46 /usr/bin/clamdtop
-rwxr-xr-x    1 root    root                   119280  4月 30 03:46 /usr/bin/clamscan
-rwxr-xr-x    1 root    root                    94224  4月 30 03:46 /usr/bin/clamsubmit
-rwxr-xr-x    1 root    root                   160872  4月 30 03:46 /usr/bin/sigtool
drwxr-xr-x    2 root    root                        0  4月 30 03:47 /usr/share/doc/clamav-0.98.7
-rw-r--r--    1 root    root                     3203  4月 23 04:49 /usr/share/doc/clamav-0.98.7/AUTHORS
-rw-r--r--    1 root    root                       24  4月 23 04:49 /usr/share/doc/clamav-0.98.7/BUGS
-rw-r--r--    1 root    root                    18738  4月 23 04:49 /usr/share/doc/clamav-0.98.7/COPYING
-rw-r--r--    1 root    root                   736067  4月 24 01:02 /usr/share/doc/clamav-0.98.7/ChangeLog
-rw-r--r--    1 root    root                       61  4月 23 04:49 /usr/share/doc/clamav-0.98.7/FAQ
-rw-r--r--    1 root    root                     1861  4月 23 04:49 /usr/share/doc/clamav-0.98.7/NEWS
-rw-r--r--    1 root    root                    98200  4月 23 04:49 /usr/share/doc/clamav-0.98.7/README
-rw-r--r--    1 root    root                      138  4月 23 04:49 /usr/share/doc/clamav-0.98.7/UPGRADE
-rw-r--r--    1 root    root                   214798  4月 24 01:07 /usr/share/doc/clamav-0.98.7/clamdoc.pdf
-rw-r--r--    1 root    root                   120286  4月 24 01:07 /usr/share/doc/clamav-0.98.7/phishsigs_howto.pdf
-rw-r--r--    1 root    root                   126165  4月 24 01:07 /usr/share/doc/clamav-0.98.7/signatures.pdf
-rw-r--r--    1 root    root                      658  4月 30 03:46 /usr/share/man/man1/clambc.1.gz
-rw-r--r--    1 root    root                      494  4月 30 03:46 /usr/share/man/man1/clamconf.1.gz
-rw-r--r--    1 root    root                     1449  4月 30 03:46 /usr/share/man/man1/clamdscan.1.gz
-rw-r--r--    1 root    root                     2259  4月 30 03:46 /usr/share/man/man1/clamdtop.1.gz
-rw-r--r--    1 root    root                     3903  4月 30 03:46 /usr/share/man/man1/clamscan.1.gz
-rw-r--r--    1 root    root                      451  4月 30 03:46 /usr/share/man/man1/clamsubmit.1.gz
-rw-r--r--    1 root    root                     1709  4月 30 03:46 /usr/share/man/man1/sigtool.1.gz
-rw-r--r--    1 root    root                     4091  4月 30 03:46 /usr/share/man/man5/clamav-milter.conf.5.gz
-rw-r--r--    1 root    root                     6197  4月 30 03:46 /usr/share/man/man5/clamd.conf.5.gz

[root@server2 ~]# rpm -qliv clamav-update
Name        : clamav-update
Version     : 0.98.7
Release     : 1.el7
Architecture: x86_64
Install Date: 2015年05月10日 07時33分03秒
Group       : Applications/File
Size        : 182427
License     : GPLv2
Signature   : RSA/SHA256, 2015年04月30日 22時57分27秒, Key ID 6a2faea2352c64e5
Source RPM  : clamav-0.98.7-1.el7.src.rpm
Build Date  : 2015年04月30日 03時47分04秒
Build Host  : buildvm-20.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.clamav.net
Summary     : Auto-updater for the Clam Antivirus scanner data-files
Description :
This package contains programs which can be used to update the clamav
anti-virus database automatically. It uses the freshclam(1) utility for
this task. To activate it, uncomment the entry in /etc/cron.d/clamav-update.
-rw-------    1 root    root                      203  4月 30 03:38 /etc/cron.d/clamav-update
-rw-r--r--    1 root    root                     8561  4月 30 03:46 /etc/freshclam.conf ← 設定ファイル
-rw-r--r--    1 root    root                       62  4月 30 03:38 /etc/logrotate.d/clamav-update
-rw-r--r--    1 root    root                      955  4月 30 03:38 /etc/sysconfig/freshclam ← 設定ファイル
-rwxr-xr-x    1 root    root                   165176  4月 30 03:46 /usr/bin/freshclam
-rwxr-xr-x    1 root    root                     1492  4月 30 03:38 /usr/share/clamav/freshclam-sleep
-rw-r--r--    1 root    root                     2168  4月 30 03:46 /usr/share/man/man1/freshclam.1.gz
-rw-r--r--    1 root    root                     3810  4月 30 03:46 /usr/share/man/man5/freshclam.conf.5.gz
-rw-rw-r--    1 clamupdaclamupda                    0  4月 30 03:46 /var/lib/clamav/daily.cld
-rw-rw-r--    1 clamupdaclamupda                    0  4月 30 03:46 /var/lib/clamav/main.cld
-rw-rw-r--    1 root    clamupda                    0  4月 30 03:46 /var/log/freshclam.log

ウィルス定義ファイル最新化の有効化
Clam AntiVirus 設定ファイル/etc/freshclam.confの編集

[root@server2 ~]# vi /etc/freshclam.conf
# Comment or remove the line below.
Example
#Example ← #を追加してコメントアウト(最新化の有効化)

# Path to the database directory.
# WARNING: It must match clamd.conf's directive!
# Default: hardcoded (depends on installation options)
#DatabaseDirectory /var/lib/clamav
DatabaseDirectory /var/lib/clamav ← コメントを解除

# Path to the log file (make sure it has proper permissions)
# Default: disabled
#UpdateLogFile /var/log/freshclam.log
UpdateLogFile /var/log/freshclam.log ← コメントを解除

# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
#DatabaseOwner clamupdate
DatabaseOwner clamupdate ← コメントを解除

# Uncomment the following line and replace XY with your country
# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
# You can use db.XY.ipv6.clamav.net for IPv6 connections.
#DatabaseMirror db.XY.clamav.net
DatabaseMirror db.jp.clamav.net ← ウィルス定義ファイル入手元を日本に変更

Clam AntiVirus 設定ファイル/etc/sysconfig/freshclamの編集

[root@server2 ~]# vi /etc/sysconfig/freshclam
### !!!!! REMOVE ME !!!!!!
### REMOVE ME: By default, the freshclam update is disabled to avoid
### REMOVE ME: network access without prior activation
FRESHCLAM_DELAY=disabled-warn  # REMOVE ME
 ↓
#FRESHCLAM_DELAY=disabled-warn  # REMOVE ME ← #を追加してコメントアウト(自動アップデート有効化)

ウィルス定義ファイルの更新

[root@server2 ~]# freshclam
ClamAV update process started at Sun May 10 07:40:32 2015
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
WARNING: getfile: daily-19996.cdiff not found on remote server (IP: 120.29.176.126)
WARNING: getpatch: Can't download daily-19996.cdiff from db.jp.clamav.net
WARNING: getfile: daily-19996.cdiff not found on remote server (IP: 203.178.137.175)
WARNING: getpatch: Can't download daily-19996.cdiff from db.jp.clamav.net
WARNING: getfile: daily-19996.cdiff not found on remote server (IP: 218.44.253.75)
WARNING: getpatch: Can't download daily-19996.cdiff from db.jp.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cld updated (version: 20440, sigs: 1384927, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 254, sigs: 45, f-level: 63, builder: anvilleg)
Database updated (3809197 signatures) from db.jp.clamav.net (IP: 120.29.176.126)
[root@server2 ~]# freshclam
ClamAV update process started at Sun May 10 07:43:46 2015
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
daily.cld is up to date (version: 20440, sigs: 1384927, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 254, sigs: 45, f-level: 63, builder: anvilleg)

ウィルススキャン確認(/etc/passwdをスキャンしてみる)

[root@server2 ~]# clamscan --infected --remove --recursive /etc/passwd

----------- SCAN SUMMARY -----------
Known viruses: 3803624
Engine version: 0.98.7
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 19.003 sec (0 m 19 s)

毎日ウィルス定義ファイルを最新化して、全てのファイルをスキャンするスプリクト作成

[root@server2 ~]# vi /etc/cron.daily/clamscan.sh
#!/bin/bash
PATH=/usr/bin:/bin

# ウイルススキャン除外リスト設定
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi

# clamavをアップデート
yum -y update clamav > /dev/null 2>&1

# ウィルス定義ファイルを最新化
freshclam > /dev/null

# ウイルスに関するメッセージを入れる変数作成
CLAMSCANTMP=`mktemp`

# スキャン実行、ウイルスが有ったら削除、mktempで作成したファイルにメッセージを入れる
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1

# ウイルスが有った場合メッセージをメール送信
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found" hoge@example.com

# ウイルスが無く正しく動作している場合もメール送信
[ -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
echo "clamscan normal end" | mail -s "Virus Not Found" hoge@example.com

# メールを送ったらmktempで作成したファイルは破棄
rm -f $CLAMSCANTMP

Clam AntiVirus定期自動実行スクリプトに実行権限付加

[root@server2 ~]# chmod 700 /etc/cron.daily/clamscan.sh

スキャン除外設定

[root@server2 ~]# echo "/proc/" >> clamscan.exclude
[root@server2 ~]# echo "/sys/" >> clamscan.exclude
[root@server2 ~]# echo "/backup/" >> clamscan.exclude
[root@server2 ~]# echo "/home/share/" >> clamscan.exclude

デフォルトでインストールされるウィルス定義ファイルの自動最新化スクリプトを削除

[root@server2 ~]# rm -f /etc/cron.d/clamav-update

ちなみにデフォルトでは3時間毎に更新チェックするような設定になっている

[root@server2 ~]# vi /etc/cron.d/clamav-update
## Adjust this line...
MAILTO=root

## It is ok to execute it as root; freshclam drops privileges and becomes
## user 'clamupdate' as soon as possible
0  */3 * * * root /usr/share/clamav/freshclam-sleep

リモート接続(PuTTY)

PuTTYはWindowsで動作するSSH方式のリモート接続ソフトウェア。 Telnetによるリモートコンピュータへの接続ではパスワードが暗号化されないので、SSH(暗号化シェル)でのリモート接続を行う。 PuTTYを導入するに当って事前にSSHサーバの構築を行っている必要がある。
■PuTTY の入手

  1. PuTTY日本語化ダウンロードサイト から日本語に対応した PuTTY をダウンロード。
  2. ダウンロードした日本語に対応した PuTTY を適当な場所に解凍。
    (最新版を確認してからダウンロード)

■秘密鍵のジェネレート

  1. 「 日本語に対応した PuTTY 」のフォルダの中の「 PuTTYgen 」を実行。
  2. 「Load ボタン」を押す。
  3. サーバより抜き取った秘密鍵を選択。(鍵の作成と抜き取りはこちら)
  4. ファイルの種類は、「All Files(*.*)」を選択。
  5. サブウィンドウが開くので、鍵を作成した時のパスワードを入力。
  6. 「Save privte key ボタン」押す。
  7. ジェネレートされた秘密鍵を適当な場所(PuTTYのフォルダ等)に名前(server)を付けて保存。
  8. メニューより[File]-[Exit]をクリックし PuTTYgen を終了。

■PuTTY の設定

  1. 「 日本語に対応した PuTTY 」のフォルダの中の「 puttyjp.exe 」を実行
  2. [セッション] ホスト名にホスト名かサーバーのIPアドレスを入力(例 192.168.1.4 )
    接続タイプは「SSH」にチェックを入れる
  3. [ウィンドウ→変換] 文字コードの設定で「UTF-8」を選択
  4. [接続→データ] 自動ログインのユーザ名にユーザー名入力(例 higo )
  5. [接続→SSH] プロトコルオプションで、優先するSSHプロトコルバージョンを[2]に設定
  6. [接続→SSH→認証] 参照ボタンを押して、秘密鍵「 server.ppk 」ファイルを指定
  7. 次に[セッション]に戻り、「保存されたセッション」に分かりやすい名前を入力して保存
    (例192.168.1.4)
  8. 保存したセッションを選択して「開く」をクリックすると、別ウインドウが開くのでパスワードを入力するとサーバーに接続できる。

※PuTTY の設定が終わってからPuTTYのフォルダを移動するとサーバーに接続できなくなるので、改めて[接続→SSH→認証]で参照ボタンを押して、保存した秘密鍵「 server.ppk 」ファイルを指定する必要がある。
■接続前の準備
外部からの接続には、ルータの設定が必要なのでルータの設定で22番のポートを開ける。
■PuTTY によるリモート接続
PuTTY を起動して、保存されたセッションにある「自宅サーバ」をダブルクリック。

Using username "higo".
Authenticating with public key "imported-openssh-key"
Last login: Mon Sep 19 11:46:44 2011 from 192.168.1.7
[higo@server1 ~]$                            ← SSHによるログインができた

■ ログインできないときのPuTTYのエラーメッセージ

 PuTTY 致命的エラー
    Disconnected: No supported authentication methods available 
  server sent: publickey,gssapi-with-mic

1)公開鍵「authorized_keys」のパーミッションで、groupやotherに対してwの権限がついている。
2)公開鍵「authorized_keys」の置いてある.sshディレクトリのパーミッションで、groupやotherに対してwの権限がついてるから。

対応

atuthorized_keysのパーミッションを600(rw- --- ---)にする。
.sshディレクトリのパーミッションを700(rwx --- ---)にする。

■PuTTY のカスタマイズ

  1. PuTTY を起動して、保存されたセッションにある「自宅サーバ」を選択して「読込」をクリック。
  2. 端末ウィンドウの大きさを変更したいときは、ウィンドウ カテゴリーの「行」「列」で設定。 デフォルトは 80×24 になっているので、「桁」を100、「行」を53、に変更。 「行」53は、キーボードの「PaguUp」「PageDown」で50行ずつスクロールするので大体の行を把握できるようにするためで、「列」は好みで変更。
  3. ウィンドウ カテゴリーの「スクロールバッファの行数」が基本では「200」になっている。 これだと以前に行った設定等の確認ができないで困る場合があるので、スクロールバッファサイズを「2000」に変更。 これは、サイト構築のための覚書を書くために、設定したことをスクロールバックして確認する必要があるため。
  4. プロバイダーによっては、一定時間入力がないと自動的に接続を切断してしまう場合がある。 接続が切れないようにしたい場合には、接続 カテゴリーの「セッションをアクティブに保つための null パケットの送信」で、 null パケットを自動送信する時間間隔 (単位: 秒) を設定する。 デフォルトは 0 (null パケットは送信しない) なので、60 秒 = 1 分おきに null パケットを送信するように設定。

yum update でエラー

cron.hourly からエラーメールを送られてきた。

/etc/cron.hourly/0yum-hourly.cron:

Not using downloaded repomd.xml because it is older than what we have:
  Current   : Wed Apr 15 20:04:54 2015
  Downloaded: Mon Apr 13 22:48:30 2015

対策
yum のキャッシュを削除することでエラーは発生しなくなる。

[root@server1 ~]# yum clean all
読み込んだプラグイン:fastestmirror, langpacks, priorities
リポジトリーを清掃しています: base centosplus epel extras rpmforge updates
Cleaning up everything
Cleaning up list of fastest mirrors

CentOS 7 systemdコマンド

CentOS 7ではsystemdが導入され、サービスの管理が従来と大きく変わっている。

サービスの起動、終了など

起動            systemctl start
終了            systemctl stop
強制終了          systemctl kill -s 9
再起動           systemctl restart
設定反映          systemctl reload
状態表示          systemctl status
自動起動の有効化      systemctl enable
自動起動の無効化      systemctl disable
自動起動の状態表示     systemctl is-enabled
サービス一覧の表示     systemctl --type service
起動失敗のユニット表示  systemctl --failed
起動しているユニット一覧 systemctl
全ての状態表示      systemctl --all

起動失敗のユニット表示

[root@server1 ~]# systemctl --failed
UNIT            LOAD   ACTIVE SUB    DESCRIPTION
clamd.service   loaded failed failed SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol serv
network.service loaded failed failed LSB: Bring up/down networking
rngd.service loaded failed failed Hardware RNG Entropy Gatherer Daemon

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

3 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

*clamd.serviceとnetwork.serviceとrngd.serviceが起動失敗している。

clamd.serviceは、再起動後ソケットファイルが見つからないというエラーで clamd が起動失敗している。原因はcentos7では/ver/runがtempfsになったので再起動後にはディレクトリ等全て消えてしまう。なのでソケットファイルが見つからないというエラーになる。
対策は、再起動後にディレクトリーを作成するように設定ファイルを編集

[root@server1 ~]# vi /etc/init.d/clamd
start(){
        echo -n "Starting Clam AntiVirus Daemon: "
        #再起動後にclamavのdirを作成
        mkdir /var/run/clamav > /dev/null 2>&1
        chown clamav:clamav /var/run/clamav > /dev/null 2>&1
        daemon clamd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
        return $RETVAL
}

2015/1/2追記
以前はclamdの設定ファイルを編集していたが、/etc/tmpfiles.d/にclamd.confを追記することで、OS起動時に/var/run/clamavディレクトリを作成できるように変更

[root@server1 ~]# vi /etc/tmpfiles.d/clamd.conf
d /var/run/clamav 0755 root root - ← 追加
[root@server1 ~]# systemd-tmpfiles --create clamd.conf

systemctlをリロード
[root@server1 ~]# systemctl daemon-reload
clamdを再起動
[root@server1 ~]# systemctl restart clamd

network.serviceは、InterfaceでIPアドレスを指定していると起動失敗するらしい。
Networkに関するユニットの自動起動の確認。

[root@server1 ~]# systemctl list-unit-files | grep Network
dbus-org.freedesktop.NetworkManager.service enabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          disabled
NetworkManager.service                      enabled

NetworkManager-wait-online.serviceを自動起動設定
[root@server1 ~]# systemctl enable NetworkManager-wait-online.service
ln -s '/usr/lib/systemd/system/NetworkManager-wait-online.service' '/etc/systemd/system/multi-user.target.wants/NetworkManager-wait-online.service'
[root@server1 ~]# systemctl list-unit-files | grep Network
dbus-org.freedesktop.NetworkManager.service enabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          enabled
NetworkManager.service                      enabled

networkを再起動
[root@server1 ~]# systemctl restart network

rngd.serviceは、多くのユーザーを抱え、乱数を使った認証サーバーなどで使うデーモン。自宅サーバーでは停止しても問題ないので自動起動も無効にする。

[root@server1 ~]# systemctl stop rngd.service
[root@server1 ~]# systemctl disable rngd.service

systemdをリロード
[root@server1 ~]# systemctl daemon-reload

サーバーを再起動

[root@server1 ~]# reboot

起動失敗のユニット確認

[root@server1 ~]# systemctl --failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

起動失敗のユニットは無くなった。

ユニットの自動起動が有効、無効の一覧

[root@server1 ~]# systemctl list-unit-files -t service
UNIT FILE                                   STATE
abrt-ccpp.service                           enabled
abrt-oops.service                           enabled
abrt-pstoreoops.service                     disabled
abrt-vmcore.service                         enabled
abrt-xorg.service                           enabled
abrtd.service                               enabled
accounts-daemon.service                     enabled
alsa-restore.service                        static
alsa-state.service                          static
alsa-store.service                          static
anaconda-direct.service                     static
anaconda-noshell.service                    static
anaconda-shell@.service                     static
anaconda-sshd.service                       static
anaconda-tmux@.service                      static
anaconda.service                            static
arp-ethers.service                          disabled
atd.service                                 enabled
auditd.service                              enabled
autofs.service                              disabled
autovt@.service                             disabled
avahi-daemon.service                        enabled
blk-availability.service                    disabled
bluetooth.service                           enabled
brandbot.service                            static
brltty.service                              disabled
canberra-system-bootup.service              disabled
canberra-system-shutdown-reboot.service     disabled
canberra-system-shutdown.service            disabled
certmonger.service                          disabled
cgconfig.service                            disabled
cgdcbxd.service                             disabled
cgred.service                               disabled
chrony-wait.service                         disabled
chronyd.service                             enabled
colord.service                              static
configure-printer@.service                  static
console-getty.service                       disabled
console-shell.service                       disabled
cpupower.service                            disabled
crond.service                               enabled
cups-browsed.service                        disabled
cups.service                                enabled
dbus-org.bluez.service                      enabled
dbus-org.freedesktop.Avahi.service          enabled
dbus-org.freedesktop.hostname1.service      static
dbus-org.freedesktop.locale1.service        static
dbus-org.freedesktop.login1.service         static
dbus-org.freedesktop.machine1.service       static
dbus-org.freedesktop.ModemManager1.service  enabled
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service  enabled
dbus-org.freedesktop.timedate1.service      static
dbus.service                                static
debug-shell.service                         disabled
display-manager.service                     enabled
dm-event.service                            disabled
dmraid-activation.service                   enabled
dnsmasq.service                             disabled
dovecot.service                             enabled
dracut-cmdline.service                      static
dracut-initqueue.service                    static
dracut-mount.service                        static
dracut-pre-mount.service                    static
dracut-pre-pivot.service                    static
dracut-pre-trigger.service                  static
dracut-pre-udev.service                     static
dracut-shutdown.service                     static
ebtables.service                            disabled
emergency.service                           static
fcoe.service                                disabled
firewalld.service                           disabled
firstboot-graphical.service                 enabled
fprintd.service                             static
gdm.service                                 enabled
getty@.service                              enabled
gssproxy.service                            disabled
halt-local.service                          static
htcacheclean.service                        static
httpd.service                               enabled
hypervkvpd.service                          enabled
hypervvssd.service                          enabled
initial-setup-graphical.service             disabled
initial-setup-text.service                  disabled
initrd-cleanup.service                      static
initrd-parse-etc.service                    static
initrd-switch-root.service                  static
initrd-udevadm-cleanup-db.service           static
instperf.service                            static
ip6tables.service                           disabled
ipsec.service                               disabled
iptables.service                            disabled
irqbalance.service                          enabled
iscsi.service                               enabled
iscsid.service                              disabled
iscsiuio.service                            disabled
kdump.service                               disabled
kmod-static-nodes.service                   static
ksm.service                                 enabled
ksmtuned.service                            enabled
libstoragemgmt.service                      enabled
libvirt-guests.service                      disabled
libvirtd.service                            enabled
lldpad.service                              disabled
lvm2-lvmetad.service                        disabled
lvm2-monitor.service                        enabled
lvm2-pvscan@.service                        static
mariadb.service                             enabled
mdmon@.service                              static
mdmonitor.service                           enabled
messagebus.service                          static
microcode.service                           enabled
ModemManager.service                        enabled
multipathd.service                          enabled
netcf-transaction.service                   disabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          enabled
NetworkManager.service                      enabled
nfs-blkmap.service                          disabled
nfs-idmap.service                           disabled
nfs-lock.service                            enabled
nfs-mountd.service                          disabled
nfs-rquotad.service                         disabled
nfs-secure-server.service                   disabled
nfs-secure.service                          disabled
nfs-server.service                          disabled
nfs.service                                 disabled
nfslock.service                             disabled
nmb.service                                 enabled
ntpd.service                                enabled
ntpdate.service                             disabled
numad.service                               disabled
oddjobd.service                             disabled
packagekit-offline-update.service           enabled
plymouth-halt.service                       disabled
plymouth-kexec.service                      disabled
plymouth-poweroff.service                   disabled
plymouth-quit-wait.service                  disabled
plymouth-quit.service                       disabled
plymouth-read-write.service                 disabled
plymouth-reboot.service                     disabled
plymouth-start.service                      disabled
plymouth-switch-root.service                static
polkit.service                              static
postfix.service                             enabled
psacct.service                              disabled
qemu-guest-agent.service                    static
quotaon.service                             static
radvd.service                               disabled
rc-local.service                            static
rdisc.service                               disabled
realmd.service                              static
rescue.service                              static
rhel-autorelabel-mark.service               static
rhel-autorelabel.service                    static
rhel-configure.service                      static
rhel-dmesg.service                          disabled
rhel-domainname.service                     disabled
rhel-import-state.service                   static
rhel-loadmodules.service                    static
rhel-readonly.service                       static
rngd.service                                disabled
rpcbind.service                             enabled
rpcgssd.service                             disabled
rpcidmapd.service                           disabled
rpcsvcgssd.service                          disabled
rsyncd.service                              disabled
rsyslog.service                             enabled
rtkit-daemon.service                        enabled
saslauthd.service                           enabled
serial-getty@.service                       disabled
smartd.service                              enabled
smb.service                                 enabled
speech-dispatcherd.service                  disabled
spice-vdagentd.service                      enabled
sshd-keygen.service                         static
sshd.service                                enabled
sshd@.service                               static
sssd.service                                disabled
svnserve.service                            disabled
sysstat.service                             enabled
systemd-ask-password-console.service        static
systemd-ask-password-plymouth.service       static
systemd-ask-password-wall.service           static
systemd-backlight@.service                  static
systemd-binfmt.service                      static
systemd-fsck-root.service                   static
systemd-fsck@.service                       static
systemd-halt.service                        static
systemd-hibernate.service                   static
systemd-hostnamed.service                   static
systemd-hybrid-sleep.service                static
systemd-initctl.service                     static
systemd-journal-flush.service               static
systemd-journald.service                    static
systemd-kexec.service                       static
systemd-localed.service                     static
systemd-logind.service                      static
systemd-machined.service                    static
systemd-modules-load.service                static
systemd-nspawn@.service                     disabled
systemd-poweroff.service                    static
systemd-quotacheck.service                  static
systemd-random-seed.service                 static
systemd-readahead-collect.service           enabled
systemd-readahead-done.service              static
systemd-readahead-drop.service              enabled
systemd-readahead-replay.service            enabled
systemd-reboot.service                      static
systemd-remount-fs.service                  static
systemd-shutdownd.service                   static
systemd-suspend.service                     static
systemd-sysctl.service                      static
systemd-timedated.service                   static
systemd-tmpfiles-clean.service              static
systemd-tmpfiles-setup-dev.service          static
systemd-tmpfiles-setup.service              static
systemd-udev-settle.service                 static
systemd-udev-trigger.service                static
systemd-udevd.service                       static
systemd-update-utmp-runlevel.service        static
systemd-update-utmp.service                 static
systemd-user-sessions.service               static
systemd-vconsole-setup.service              static
target.service                              disabled
teamd@.service                              static
tuned.service                               enabled
udisks2.service                             static
upower.service                              disabled
usbmuxd.service                             static
virtlockd.service                           static
vmtoolsd.service                            enabled
vsftpd.service                              enabled
vsftpd@.service                             disabled
wacom-inputattach@.service                  static
wpa_supplicant.service                      disabled
yum-cron.service                            enabled

237 unit files listed.

enableとなっているところは自動起動が有効、disabledとなっているところは自動起動が無効という意味。staticは他のユニットに依存するもので、これ単体で有効/無効が設定できないもの。

CentOS 7 Clam AntiVirusインストール

2015年1月4日修正
clamscanでスキャンすると時間が結構かかってたので、より高速に動作するclamdscanでウイルススキャンするように変更。また、除外ディレクトリーも新たに設定。
※clamdscanはスキャンして、変更の無いファイルは2度目以降のスキャンをスキップするので高速である。

■Clam AntiVirusをRepoforgeリポジトリからインストール
yumでインストールする場合、Repoforgeリポジトリを追加しておく必要がある

[root@server1 ~]# yum -y install clamd
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * centosplus: ftp.nara.wide.ad.jp
 * epel: mirrors.ustc.edu.cn
 * extras: ftp.nara.wide.ad.jp
 * rpmforge: ftp.neowiz.com
 * updates: ftp.nara.wide.ad.jp
77 packages excluded due to repository priority protections
依存性の解決をしています
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> トランザクションの確認を実行しています。
---> パッケージ clamd.x86_64 0:0.98.4-1.el7.rf を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package            アーキテクチャー    バージョン                      リポジトリー           容量
====================================================================================================
インストール中:
 clamd              x86_64              0.98.4-1.el7.rf                 rpmforge              158 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 158 k
インストール容量: 680 k
Downloading packages:
clamd-0.98.4-1.el7.rf.x86_64.rpm                                             | 158 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : clamd-0.98.4-1.el7.rf.x86_64                                        1/1
  検証中                  : clamd-0.98.4-1.el7.rf.x86_64                                        1/1

インストール:
  clamd.x86_64 0:0.98.4-1.el7.rf

完了しました!

■設定ファイル変更

[root@server1 ~]# vi /etc/clamd.conf

#除外ディレクトリーを指定
# Don't scan files and directories matching regex
# This directive can be used multiple times
# Default: scan all
#ExcludePath ^/proc/
#ExcludePath ^/sys/
#------追加ここから------
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/backup/
ExcludePath ^/home/share/
#--------ここまで--------

#ルートで動作するように変更
User clamav
↓
#User clamav

#壊れたファイルは誤検出が多いため無効
DetectBrokenExecutables yes
↓
#DetectBrokenExecutables yes

#圧縮ファイルのスキャンは無効
# ClamAV can scan within archives and compressed files.
# Default: yes
ScanArchive yes
 ↓
ScanArchive no

※どのディレクトリを除外ディレクトリーに指定するかは以下を参照。
CentOSの各ディレクトリに格納されているファイルについて

bin    CentOSに最初から有るコマンド群
boot   ブートに関するファイル
dev    デバイスに関するファイル
etc    コンフィグファイル
home   root以外のユーザーディレクトリ
lib    コマンドを実行するためのファイル
lib64  コマンドを実行するための64ビット用ファイル
media  CDやDVDのマウントポイント
mnt    ファイルシステムのマウントポイント
opt    パッケージのインストール先
proc   プロセスやカーネルに関するファイル
root   rootユーザーのディレクトリ
run    プロセスのデータ /var/runは/runのシンボリックリンク
sbin   管理者が使用するコマンド
srv    システムのサービスデータ
sys    ドライバ関連のファイル
tmp    テンポラリファイル
usr    ユーザーが共通で使うプログラム群。
     ※/usr/share/applicationsがWindowsのコントロールパネルに相当
var    ログやApacheのデフォルトのドキュメントルートなど

■Clam AntiVirusの起動

clamdの起動
[root@server1 ~]# systemctl start clamd

clamdの自動起動設定
[root@server1 ~]# systemctl enable clamd
clamd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig clamd on
The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).

■「freshclam」を使用してVirusDBをアップデート

ウィルス定義ファイルの更新機能を有効化
[root@server1 ~]# sed -i 's/Example/#Example/g' /etc/freshclam.conf

VirusDBをアップデート
[root@server1 ~]# freshclam
ClamAV update process started at Sun Jan  4 12:47:36 2015
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.98.4 Recommended version: 0.98.5
DON'T PANIC! Read http://www.clamav.net/support/faq
main.cld is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
Downloading daily-19879.cdiff [100%]
daily.cld updated (version: 19879, sigs: 1301911, f-level: 63, builder: neo)
bytecode.cld is up to date (version: 244, sigs: 44, f-level: 63, builder: dgoddard)
Database updated (3726180 signatures) from db.local.clamav.net (IP: 218.44.253.75)
Clamd successfully notified about the update.

※clamAVのバージョンが古いというメッセージが出るが、特に問題ないので放置。

■VirusDB自動アップデートスクリプトの作成
yumでインストールすると自動で毎日アップデートしてくれるが、何らかの理由でファイルが無いという場合には以下のファイルを作成。

[root@server1 ~]# vi /etc/cron.daily/freshclam
#!/bin/sh

### A simple update script for the clamav virus database.
### This could as well be replaced by a SysV script.

### fix log file if needed
LOG_FILE="/var/log/clamav/freshclam.log"
if [ ! -f "$LOG_FILE" ]; then
    touch "$LOG_FILE"
    chmod 644 "$LOG_FILE"
    chown clamav.clamav "$LOG_FILE"
fi

/usr/bin/freshclam \
    --quiet \
    --datadir="/var/clamav" \
    --log="$LOG_FILE" \
    --daemon-notify="/etc/clamd.conf"

■clamscanでウイルススキャン
※/rootディレクトリをスキャンしてウイルスが見つかった場合だけ表示、削除する。

[root@server1 ~]# clamscan /root --infected --remove --recursive

----------- SCAN SUMMARY -----------
Known viruses: 3720154
Engine version: 0.98.4
Scanned directories: 1456
Scanned files: 3455
Infected files: 0
Data scanned: 139.04 MB
Data read: 3429.55 MB (ratio 0.04:1)
Time: 36.553 sec (0 m 36 s)

■より高速に動作するclamdscanでウイルススキャン
※clamdscanはウイルススキャンして、変更の無いファイルは2度目以降のウイルススキャンをスキップするので高速である。

[root@server1 ~]# clamdscan /root
/root: OK

----------- SCAN SUMMARY -----------
Infected files: 0
Time: 21.567 sec (0 m 21 s)

■clamdscanの定期自動実行設定(毎日実行するので/etc/cron.dailyに保存)

[root@server1 ~]# vi /etc/cron.daily/clamdscan
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
CLAMSCANTMP=`mktemp`
 
clamdscan / --remove > $CLAMSCANTMP 2>&1
 
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found" hoge@example.com
 
[ -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
echo "clamdscan normal end" | mail -s "Virus Not Found" hoge@example.com
 
rm -f $CLAMSCANTMP

■Clam AntiVirus定期自動実行スクリプトに実行権限付加

[root@server1 ~]# chmod +x /etc/cron.daily/clamdscan

■ウィルススキャン確認

[root@server1 ~]# sh /etc/cron.daily/clamdscan

ウイルススキャンが終了すると、問題なければ以下の様なメールが届く。
Virus Not Found

clamdscan normal end

■再起動するとclamdが起動しないというトラブル発生

[root@server1 ~]# systemctl status clamd
clamd.service - SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server.
   Loaded: loaded (/etc/rc.d/init.d/clamd)
   Active: failed (Result: exit-code) since 日 2014-07-20 11:26:16 JST; 2min 7s ago
  Process: 21056 ExecStart=/etc/rc.d/init.d/clamd start (code=exited, status=1/FAILURE)

 7月 20 12:09:17 server1.yokensaka.com systemd[1]: Starting SYSV: Clam AntiVirus Daemon is a T.....
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: clamd daemon 0.98.4 (OS: linux-gnu, ARCH: ...4)
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Log file size limited to 4294967295 bytes.
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Reading databases from /var/clamav
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Not loading PUA signatures.
 7月 20 12:09:17 server1.yokensaka.com clamd[1034]: Bytecode: Security mode set to "TrustSigned".
 7月 20 12:09:33 server1.yokensaka.com clamd[1034]: Loaded 3502516 signatures.
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: TCP: Bound to address 127.0.0.1 on port 3310
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: TCP: Setting connection queue length to 30
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: LOCAL: Socket file /var/run/clamav/clamd.s...ry
 7月 20 12:09:34 server1.yokensaka.com clamd[1034]: Can't unlink the socket file /var/run/clam...ck
 7月 20 12:09:34 server1.yokensaka.com clamd[1021]: Starting Clam AntiVirus Daemon: ERROR: LOC...ry
 7月 20 12:09:34 server1.yokensaka.com clamd[1021]: ERROR: Can't unlink the socket file /var/r...ck
 7月 20 12:09:34 server1.yokensaka.com clamd[1021]: [失敗]
 7月 20 12:09:34 server1.yokensaka.com systemd[1]: clamd.service: control process exited, code...=1
 7月 20 12:09:34 server1.yokensaka.com systemd[1]: Failed to start SYSV: Clam AntiVirus Daemon.....
 7月 20 12:09:34 server1.yokensaka.com systemd[1]: Unit clamd.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.

ソケットファイルが見つからないというエラーで clamd が起動しなくなる。原因はcentos7では/ver/runがtempfsになったので再起動後にはディレクトリ等全て消えてしまう。なのでソケットファイルが見つからないというエラーになるのではと思う。

■手動でソケット用ディレクトリーを作成してclamdを起動させてみる

[root@server1 ~]# mkdir /var/run/clamav
[root@server1 ~]# chown -R clamav:clamav /var/run/clamav
[root@server1 ~]# chmod -R 700 /var/run/clamav
[root@server1 ~]# systemctl start clamd
[root@server1 ~]# systemctl status clamd
clamd.service - SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server.
   Loaded: loaded (/etc/rc.d/init.d/clamd)
   Active: active (running) since 日 2014-07-20 12:02:43 JST; 7s ago
  Process: 2583 ExecStart=/etc/rc.d/init.d/clamd start (code=exited, status=0/SUCCESS)
 Main PID: 2586 (clamd)
   CGroup: /system.slice/clamd.service
           └─2586 clamd

 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: ELF support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: Detection of broken executables enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: Mail files support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: OLE2 support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: PDF support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: SWF support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: HTML support enabled.
 7月 20 12:02:42 server1.yokensaka.com clamd[2586]: Self checking every 600 seconds.
 7月 20 12:02:43 server1.yokensaka.com clamd[2583]: Starting Clam AntiVirus Daemon: [  OK  ]
 7月 20 12:02:43 server1.yokensaka.com systemd[1]: Started SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server..

起動できた

再起動後にディレクトリーを作成するように設定ファイルを編集(赤字の部分を追記)

[root@server1 ~]# vi /etc/init.d/clamd
#!/bin/sh
#
# Startup script for the Clam AntiVirus Daemon
#
# chkconfig: 2345 61 39
# description: Clam AntiVirus Daemon is a TCP/IP or socket protocol \
#              server.
# processname: clamd
# pidfile: /var/run/clamav/clamd.pid
# config: /etc/clamav.conf

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

[ -x /usr/sbin/clamd ] || exit 0

start(){
        echo -n "Starting Clam AntiVirus Daemon: "
        #再起動後にclamavのdirを作成
        mkdir /var/run/clamav > /dev/null 2>&1
        schown clamav:clamav /var/run/clamav > /dev/null 2>&1
        daemon clamd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
        return $RETVAL
}

stop() {
        echo -n "Stopping Clam AntiVirus Daemon: "
        killproc clamd
        rm -f /var/clamav/clamd.socket
        rm -f /var/run/clamav/clamav.pid
        RETVAL=$?
        echo
        ### heres the fix... we gotta remove the stale files on restart
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/clamd
        return $RETVAL
}

restart() {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status clamd
        RETVAL=$?
        ;;
  restart|reload)
        restart
        ;;
  condrestart)
        [ -e /var/lock/subsys/clamd ] && $0 restart
        RETVAL=$?
        ;;
  *)
        echo "Usage: clamd {start|stop|status|restart|reload|condrestart}"
        exit 1
esac

exit $RETVAL

2015/1/2追記
以前はclamdの設定ファイルを編集していたが、/etc/tmpfiles.d/にclamd.confを追記することで、OS起動時に/var/run/clamavディレクトリを作成できるように変更

[root@server1 ~]# vi /etc/tmpfiles.d/clamd.conf
d /var/run/clamav 0755 root root - ← 追加
[root@server1 ~]# systemd-tmpfiles --create clamd.conf

systemdをリロード
[root@server1 ~]# systemctl daemon-reload
clamdを再起動
[root@server1 ~]# systemctl restart clamd

■確認

[root@server1 ~]# reboot

[root@server1 ~]# systemctl status clamd
clamd.service - SYSV: Clam AntiVirus Daemon is a TCP/IP or socket protocol server.
   Loaded: loaded (/etc/rc.d/init.d/clamd)
   Active: active (running) since 金 2015-01-02 16:24:11 JST; 30s ago
  Process: 1005 ExecStart=/etc/rc.d/init.d/clamd start (code=exited, status=0/SUCCESS)
 Main PID: 1480 (clamd)
   CGroup: /system.slice/clamd.service
           └─1480 clamd

 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: ELF support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: Detection of broken executables enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: Mail files support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: OLE2 support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: PDF support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: SWF support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: HTML support enabled.
 1月 02 16:24:10 server1.yokensaka.com clamd[1480]: Self checking every 600 seconds.
 1月 02 16:24:11 server1.yokensaka.com clamd[1005]: Starting Clam AntiVirus Daemon: [  OK  ]
 1月 02 16:24:11 server1.yokensaka.com systemd[1]: Started SYSV: Clam AntiVirus Daemon is a TC.....
Hint: Some lines were ellipsized, use -l to show in full.

自動起動できた。

■epel.repoでclamを除外 2015年2月14日追記
Clam AntiVirusはRepoforgeリポジトリのものを使っているが、Repoforgeリポジトリとepelリポジトリの両方を有効にしていると、Clam AntiVirusのyum updateでエラーになり、全てのupdateが出来なくなるので、epel.repoでclamを除外しておく。

[root@server1 ~]# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1 ← 1 に設定
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
exclude=clam* ← clamはRepoforgeのものを使うのでepelのclamは除外

ハードウェア情報の表示

■lshwのインストール(EPELからインストール)

[root@server1 ~]# yum --enablerepo=epel -y install lshw
読み込んだプラグイン:fastestmirror, langpacks, priorities
epel/x86_64/metalink                                                         | 6.2 kB  00:00:00
epel                                                                         | 4.4 kB  00:00:00
(1/2): epel/x86_64/group_gz                                                  | 250 kB  00:00:00
(2/2): epel/x86_64/primary_db                                                | 3.7 MB  00:00:00
(1/2): epel/x86_64/updateinfo                                                | 221 kB  00:00:00
(2/2): epel/x86_64/pkgtags                                                   | 1.3 MB  00:00:00
Loading mirror speeds from cached hostfile
 * base: ftp.yz.yamagata-u.ac.jp
 * centosplus: ftp.yz.yamagata-u.ac.jp
 * epel: ftp.cuhk.edu.hk
 * extras: ftp.yz.yamagata-u.ac.jp
 * updates: ftp.yz.yamagata-u.ac.jp
64 packages excluded due to repository priority protections
依存性の解決をしています
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> トランザクションの確認を実行しています。
---> パッケージ lshw.x86_64 0:B.02.17-3.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
 Package             アーキテクチャー      バージョン                     リポジトリー         容量
====================================================================================================
インストール中:
 lshw                x86_64                B.02.17-3.el7                  epel                276 k

トランザクションの要約
====================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 276 k
インストール容量: 797 k
Downloading packages:
lshw-B.02.17-3.el7.x86_64.rpm                                                | 276 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : lshw-B.02.17-3.el7.x86_64                                           1/1
  検証中                  : lshw-B.02.17-3.el7.x86_64                                           1/1

インストール:
  lshw.x86_64 0:B.02.17-3.el7

完了しました!

■ハードウェア情報の表示

[root@server1 ~]# lshw
server1.yokensaka.com
    description: Tower Computer
    product: ProLiant MicroServer (658553-291)
    vendor: HP
    serial: 5C7229P1HC
    width: 64 bits
    capabilities: smbios-2.6 dmi-2.6 vsyscall32
    configuration: boot=normal chassis=tower sku=658553-291 uuid=806BD41E-D21D-B211-8000-A0B3CCDF1D2B
  *-core
       description: Motherboard
       physical id: 0
     *-firmware
          description: BIOS
          vendor: HP
          physical id: 0
          version: O41
          date: 07/29/2011
          size: 64KiB
          capacity: 1984KiB
          capabilities: isa pci pnp upgrade shadowing escd cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification
     *-cpu
          description: CPU
          product: (To Be Filled By O.E.M.)
          vendor: Advanced Micro Devices [AMD]
          physical id: 3
          bus info: cpu@0
          version: AMD Turion(tm) II Neo N40L Dual-Core Processor
          serial: To Be Filled By O.E.M.
          slot: CPU 1
          size: 800MHz
          capacity: 2200MHz
          width: 64 bits
          clock: 200MHz
          capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate npt lbrv svm_lock nrip_save cpufreq
          configuration: cores=2 enabledcores=2 threads=2
        *-cache:0
             description: L1 cache
             physical id: 4
             slot: L1-Cache
             size: 256KiB
             capacity: 256KiB
             capabilities: pipeline-burst internal varies data
        *-cache:1
             description: L2 cache
             physical id: 5
             slot: L2-Cache
             size: 2MiB
             capacity: 2MiB
             capabilities: pipeline-burst internal varies unified
     *-memory
          description: System Memory
          physical id: 14
          slot: System board or motherboard
          size: 8GiB
        *-bank:0
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: ModulePartNumber00
             vendor: Manufacturer00
             physical id: 0
             serial: SerNum00
             slot: DIMM0
             size: 4GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:1
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: ModulePartNumber01
             vendor: Manufacturer01
             physical id: 1
             serial: SerNum01
             slot: DIMM1
             size: 4GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
     *-pci:0
          description: Host bridge
          product: RS880 Host Bridge
          vendor: Advanced Micro Devices, Inc. [AMD]
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 00
          width: 32 bits
          clock: 66MHz
        *-pci:0
             description: PCI bridge
             product: Hewlett-Packard Company
             vendor: Hewlett-Packard Company
             physical id: 1
             bus info: pci@0000:00:01.0
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: pci ht normal_decode bus_master cap_list
             resources: ioport:e000(size=4096) memory:fe700000-fe8fffff ioport:f0000000(size=134217728)
           *-display
                description: VGA compatible controller
                product: RS880M [Mobility Radeon HD 4225/4250]
                vendor: Advanced Micro Devices, Inc. [AMD/ATI]
                physical id: 5
                bus info: pci@0000:01:05.0
                version: 00
                width: 32 bits
                clock: 33MHz
                capabilities: pm msi vga_controller bus_master cap_list rom
                configuration: driver=radeon latency=0
                resources: irq:18 memory:f0000000-f7ffffff ioport:e000(size=256) memory:fe8f0000-fe8fffff memory:fe700000-fe7fffff
        *-pci:1
             description: PCI bridge
             product: RS780 PCI to PCI bridge (PCIE port 2)
             vendor: Advanced Micro Devices, Inc. [AMD]
             physical id: 6
             bus info: pci@0000:00:06.0
             version: 00
             width: 32 bits
             clock: 33MHz
             capabilities: pci pm pciexpress msi ht normal_decode bus_master cap_list
             configuration: driver=pcieport
             resources: irq:40 memory:fe900000-fe9fffff
           *-network
                description: Ethernet interface
                product: NetXtreme BCM5723 Gigabit Ethernet PCIe
                vendor: Broadcom Corporation
                physical id: 0
                bus info: pci@0000:02:00.0
                logical name: enp2s0
                version: 10
                serial: a0:b3:cc:df:1d:2b
                size: 100Mbit/s
                capacity: 1Gbit/s
                width: 64 bits
                clock: 33MHz
                capabilities: pm vpd msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
                configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.136 duplex=full firmware=5723-v3.35 ip=192.168.1.5 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
                resources: irq:42 memory:fe9f0000-fe9fffff
        *-storage
             description: SATA controller
             product: SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 11
             bus info: pci@0000:00:11.0
             version: 40
             width: 32 bits
             clock: 66MHz
             capabilities: storage msi ahci_1.0 bus_master cap_list
             configuration: driver=ahci latency=64
             resources: irq:41 ioport:d000(size=8) ioport:c000(size=4) ioport:b000(size=8) ioport:a000(size=4) ioport:9000(size=16) memory:fe6ffc00-fe6fffff
        *-usb:0
             description: USB controller
             product: SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 12
             bus info: pci@0000:00:12.0
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: ohci bus_master
             configuration: driver=ohci-pci latency=64
             resources: irq:18 memory:fe6fe000-fe6fefff
           *-usbhost
                product: OHCI PCI host controller
                vendor: Linux 3.10.0-123.13.2.el7.x86_64 ohci_hcd
                physical id: 1
                bus info: usb@4
                logical name: usb4
                version: 3.10
                capabilities: usb-1.10
                configuration: driver=hub slots=5 speed=12Mbit/s
        *-usb:1
             description: USB controller
             product: SB7x0/SB8x0/SB9x0 USB EHCI Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 12.2
             bus info: pci@0000:00:12.2
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: pm debug ehci bus_master cap_list
             configuration: driver=ehci-pci latency=64
             resources: irq:17 memory:fe6ff800-fe6ff8ff
           *-usbhost
                product: EHCI Host Controller
                vendor: Linux 3.10.0-123.13.2.el7.x86_64 ehci_hcd
                physical id: 1
                bus info: usb@1
                logical name: usb1
                version: 3.10
                capabilities: usb-2.00
                configuration: driver=hub slots=5 speed=480Mbit/s
        *-usb:2
             description: USB controller
             product: SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 13
             bus info: pci@0000:00:13.0
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: ohci bus_master
             configuration: driver=ohci-pci latency=64
             resources: irq:18 memory:fe6fd000-fe6fdfff
           *-usbhost
                product: OHCI PCI host controller
                vendor: Linux 3.10.0-123.13.2.el7.x86_64 ohci_hcd
                physical id: 1
                bus info: usb@5
                logical name: usb5
                version: 3.10
                capabilities: usb-1.10
                configuration: driver=hub slots=5 speed=12Mbit/s
        *-usb:3
             description: USB controller
             product: SB7x0/SB8x0/SB9x0 USB EHCI Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 13.2
             bus info: pci@0000:00:13.2
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: pm debug ehci bus_master cap_list
             configuration: driver=ehci-pci latency=64
             resources: irq:17 memory:fe6ff400-fe6ff4ff
           *-usbhost
                product: EHCI Host Controller
                vendor: Linux 3.10.0-123.13.2.el7.x86_64 ehci_hcd
                physical id: 1
                bus info: usb@2
                logical name: usb2
                version: 3.10
                capabilities: usb-2.00
                configuration: driver=hub slots=5 speed=480Mbit/s
        *-serial
             description: SMBus
             product: SBx00 SMBus Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 14
             bus info: pci@0000:00:14.0
             version: 42
             width: 32 bits
             clock: 66MHz
             configuration: driver=piix4_smbus latency=0
             resources: irq:0
        *-ide
             description: IDE interface
             product: SB7x0/SB8x0/SB9x0 IDE Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 14.1
             bus info: pci@0000:00:14.1
             version: 40
             width: 32 bits
             clock: 66MHz
             capabilities: ide bus_master
             configuration: driver=pata_atiixp latency=64
             resources: irq:17 ioport:1f0(size=8) ioport:3f6 ioport:170(size=8) ioport:376 ioport:ff00(size=16)
        *-isa
             description: ISA bridge
             product: SB7x0/SB8x0/SB9x0 LPC host controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 14.3
             bus info: pci@0000:00:14.3
             version: 40
             width: 32 bits
             clock: 66MHz
             capabilities: isa bus_master
             configuration: latency=0
        *-pci:2
             description: PCI bridge
             product: SBx00 PCI to PCI Bridge
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 14.4
             bus info: pci@0000:00:14.4
             version: 40
             width: 32 bits
             clock: 66MHz
             capabilities: pci subtractive_decode bus_master
        *-usb:4
             description: USB controller
             product: SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 16
             bus info: pci@0000:00:16.0
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: ohci bus_master
             configuration: driver=ohci-pci latency=64
             resources: irq:18 memory:fe6fc000-fe6fcfff
           *-usbhost
                product: OHCI PCI host controller
                vendor: Linux 3.10.0-123.13.2.el7.x86_64 ohci_hcd
                physical id: 1
                bus info: usb@6
                logical name: usb6
                version: 3.10
                capabilities: usb-1.10
                configuration: driver=hub slots=4 speed=12Mbit/s
        *-usb:5
             description: USB controller
             product: SB7x0/SB8x0/SB9x0 USB EHCI Controller
             vendor: Advanced Micro Devices, Inc. [AMD/ATI]
             physical id: 16.2
             bus info: pci@0000:00:16.2
             version: 00
             width: 32 bits
             clock: 66MHz
             capabilities: pm debug ehci bus_master cap_list
             configuration: driver=ehci-pci latency=64
             resources: irq:17 memory:fe6ff000-fe6ff0ff
           *-usbhost
                product: EHCI Host Controller
                vendor: Linux 3.10.0-123.13.2.el7.x86_64 ehci_hcd
                physical id: 1
                bus info: usb@3
                logical name: usb3
                version: 3.10
                capabilities: usb-2.00
                configuration: driver=hub slots=4 speed=480Mbit/s
     *-pci:1
          description: Host bridge
          product: Family 10h Processor HyperTransport Configuration
          vendor: Advanced Micro Devices, Inc. [AMD]
          physical id: 101
          bus info: pci@0000:00:18.0
          version: 00
          width: 32 bits
          clock: 33MHz
     *-pci:2
          description: Host bridge
          product: Family 10h Processor Address Map
          vendor: Advanced Micro Devices, Inc. [AMD]
          physical id: 102
          bus info: pci@0000:00:18.1
          version: 00
          width: 32 bits
          clock: 33MHz
     *-pci:3
          description: Host bridge
          product: Family 10h Processor DRAM Controller
          vendor: Advanced Micro Devices, Inc. [AMD]
          physical id: 103
          bus info: pci@0000:00:18.2
          version: 00
          width: 32 bits
          clock: 33MHz
          configuration: driver=amd64_edac
          resources: irq:0
     *-pci:4
          description: Host bridge
          product: Family 10h Processor Miscellaneous Control
          vendor: Advanced Micro Devices, Inc. [AMD]
          physical id: 104
          bus info: pci@0000:00:18.3
          version: 00
          width: 32 bits
          clock: 33MHz
          configuration: driver=k10temp
          resources: irq:0
     *-pci:5
          description: Host bridge
          product: Family 10h Processor Link Control
          vendor: Advanced Micro Devices, Inc. [AMD]
          physical id: 105
          bus info: pci@0000:00:18.4
          version: 00
          width: 32 bits
          clock: 33MHz
     *-scsi:0
          physical id: 1
          logical name: scsi0
          capabilities: emulated
        *-cdrom
             description: DVD-RAM writer
             product: iHAS324   B
             vendor: ATAPI
             physical id: 0.1.0
             bus info: scsi@0:0.1.0
             logical name: /dev/cdrom
             logical name: /dev/sr0
             version: AL19
             capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
             configuration: ansiversion=5 status=nodisc
     *-scsi:1
          physical id: 2
          logical name: scsi2
          capabilities: emulated
        *-disk
             description: ATA Disk
             product: ST31000524NS
             vendor: Seagate
             physical id: 0.0.0
             bus info: scsi@2:0.0.0
             logical name: /dev/sda
             version: SN12
             serial: 9WK3YQKQ
             size: 931GiB (1TB)
             capabilities: partitioned partitioned:dos
             configuration: ansiversion=5 logicalsectorsize=512 sectorsize=512 signature=000182dd
           *-volume:0
                description: Linux filesystem partition
                physical id: 1
                bus info: scsi@2:0.0.0,1
                logical name: /dev/sda1
                logical name: /boot
                capacity: 500MiB
                capabilities: primary bootable
                configuration: mount.fstype=xfs mount.options=rw,relatime,attr2,inode64,noquota state=mounted
           *-volume:1
                description: Linux LVM Physical Volume partition
                physical id: 2
                bus info: scsi@2:0.0.0,2
                logical name: /dev/sda2
                serial: Kni49J-MUYM-6VxX-TFOK-HkUh-vtgG-QAWV5G
                size: 931GiB
                capacity: 931GiB
                capabilities: primary multi lvm2

CentOS 7 バックアップ(予備サーバへ)

バックアップ(予備サーバへ)

■クライアント側でのRsync によるバックアップ
  (Linuxメインサーバー⇒Linux予備サーバー)

ここでは rsync を使用して、予備サーバーの起動時にメインサーバーのhtmlデータを予備サーバーに自動でバックアップする。rsync はアクセス権限や所有者情報もあわせてバックアップできる為、CGI等のパーミッションや所有者情報の設定をせずに即実行できる。また、rsync コマンドは、2回目以降は更新分のみバックアップしたり、バックアップ元から削除されたファイルをバックアップ先からも削除するなど同期を行うことも可能。データを同期させておけば、メインサーバーにトラブルが発生しても、すぐに予備のサーバーに切り替えることが出来る。
SSH を利用して予備サーバーからメインサーバーに対して rsync を自動実行するようにする。尚作業はメインサーバー、予備サーバーともrootで行う。

まず、バックアップサーバにrsyncをインストールしておき、rsyncコマンドが使える状態にしておく。

[root@server2 ~]# yum install rsync
[root@server2 ~]# rpm -qa | grep rsync
    rsync-3.0.9-15.el7.x86_64

1.鍵の作成
先ずは、予備サーバーのほうで鍵の作成。Enterと書いてある部分は、何も入力せずにEnterキーを押せばOK。

[root@server2 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): → そのままEnter
Enter passphrase (empty for no passphrase): → そのままEnter
Enter same passphrase again: → そのままEnter
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
35:c4:62:b1:e5:b8:8a:a7:cf:b9:ff:3e:52:9a:e5:d1 root@server2.yokensaka.com
The key's randomart image is:
+--[ RSA 2048]----+
|        .oo      |
|        o*.      |
|       .o.+      |
|         o .     |
|        S  .     |
|     . .  + E    |
|    . o  * .     |
|     + .+ o      |
|    ..=o.+o.     |
+-----------------+

2.公開鍵の抜き取り・コピー
公開鍵は/root/.ssh/id_rsa.pub、秘密鍵は/root/.ssh/id_rsaに保存される。このうち公開鍵をメインサーバにscp経由でコピーする。

[root@server2 ~]# scp /root/.ssh/id_rsa.pub 192.168.1.4:/root/.ssh/
id_rsa.pub                                                        100%  408     0.4KB/s

メインサーバーの/root/.ssh/に公開鍵がコピーされたので、これを/root/.ssh/authorized_keyに登録。

[root@server1 ~]# mkdir .ssh
[root@server1 ~]# cat id_rsa.pub >> /root/.ssh/authorized_keys

続いて、authorized_keys2のパーミッションの変更。
[root@server1 ~]# chmod 600 /root/.ssh/authorized_keys

次にメインサーバーのほうのsshd_configを編集して、rootでのログインを許可。

[root@server1 ~]# vi /etc/ssh/sshd_config
PermitRootLogin no
↓
PermitRootLogin yes

この変更を終えたら、メインサーバーのSSHを再起動しておく。
[root@server1 ~]# service sshd restart

以上で、予備サーバーからメインサーバーへのSSH接続は、パスワード等を入力することなく
接続できるようになっている。試しに予備サーバーから、メインサーバーにSSHで接続してみる。

[root@server2 ~]# ssh 192.168.1.4
Last login: Sat Dec 20 17:32:28 2014
[root@server1 ~]#  ← メインサーバーへパスワード応答なしでログインできた
[root@server1 ~]# exit ← メインサーバーからログアウト
logout
Connection to 192.168.1.4 closed.
[root@server2 ~]# ← メインサーバーからログアウトした

これでパスワードなどを入力することなく、メインサーバーに接続できる。

3.バックアップスクリプト作成(クライアント側)
すでに作成されてるサーバーのバックアップファイルと/var/www/html/にあるファイルを予備サーバーに rsync でダウンロードするスプリクト作成。

バックアップ先ディレクトリ作成

[root@server2 ~]# mkdir /backuprsync

スプリクト作成

[root@server2 ~]# vi backuprsync.sh
#!/bin/sh
RSYNC='rsync -avz -e ssh --delete'
$RSYNC 192.168.1.4:/var/www/html/ /var/www/html/ >> /var/log/backup.log
$RSYNC 192.168.1.4:/backup/backup.tar.bz2 /backuprsync/backup.tar.bz2 >> /var/log/backup.log
$RSYNC 192.168.1.4:/backup/fedoradump.sql /backuprsync/fedoradump.sql >> /var/log/backup.log
$RSYNC 192.168.1.4:/backup/blogdump.sql /backuprsync/blogdump.sql >> /var/log/backup.log
$RSYNC 192.168.1.4:/backup/takadump.sql /backuprsync/takadump.sql >> /var/log/backup.log
$RSYNC 192.168.1.4:/backup/centosdump.sql /backuprsync/centosdump.sql >> /var/log/backup.log
※サーバー側の/var/www/html/にあるファイルを、クライアント側の/var/www/html/へ上書きコピー
※サーバー側の/backup/の中にある個別のファイルをクライアント側の/root/backuprsync/にバックアップ

ファイルサーバーのデータのバックアップスクリプト作成。

[root@server2 ~]# vi backupshare.sh
#!/bin/sh
RSYNC='rsync -avz -e ssh --delete'
$RSYNC 192.168.1.4:/home/share/Application/ /home/share/Application/ >> /var/log/backup.log
$RSYNC 192.168.1.4:/home/share/Construction/ /home/share/Construction/ >> /var/log/backup.log
$RSYNC 192.168.1.4:/home/share/Dpro/ /home/share/Dpro/ >> /var/log/backup.log
$RSYNC 192.168.1.4:/home/share/SO-02G/ /home/share/SO-02G/ >> /var/log/backup.log
$RSYNC 192.168.1.4:/home/share/pine/ /home/share/pine/ >> /var/log/backup.log

作成したバックアップスクリプトへ実行権限付加

[root@server2 ~]# chmod +x backuprsync.sh
[root@server2 ~]# chmod +x backupshare.sh

※mysqldump.sqlについてはメインサーバーの情報等が入っているのでクライアント側にリストアするとトラブルになる。mysqldump.sqlはクライアント側にはバックアップしない。あくまで個別のデータのみバックアップする。
※ 誤って予備サーバーのデーターをメインサーバーに上書きする可能性があるのでメインサーバーにはこのスプリプトは置かないこと!!

4.バックアップスクリプト確認(クライアント側)

[root@server2 ~]# /root/backuprsync.sh ← バックアップスクリプト実行
[root@server2 ~]# ll /var/www/html/ ← バックアップ結果確認
※メインサーバーと同じ物がバックアップされてるはず
[root@server2 ~]# ll /backuprsync ← バックアップ結果確認
合計 3399308
-rw-r--r-- 1 root root 3460677998  12月 23 03:04 backup.tar.bz2
-rw-r--r-- 1 root root   13692391  12月 23 02:00 blogdump.sql
-rw-r--r-- 1 root root    3783663  12月 23 02:00 centosdump.sql
-rw-r--r-- 1 root root     816538  12月 23 02:00 fedoradump.sql
-rw-r--r-- 1 root root     792233  12月 23 02:00 takadump.sql

※メインサーバーのバックアップファイルが/root/にバックアップされている

5.バックアップスクリプト自動実行設定

[root@server2 ~]# echo "30 3 * * * root /root/backuprsync.sh" > /etc/cron.d/backuprsync

6.データベースを予備サーバーへ復元
htmlファイルは直に上書きしているが、データベースファイルは予備サーバー側で以下のコマンドを実行すれば各データベースが復元される

# mysql -uroot -pパスワード fedora --default-character-set=binary < /backuprsync/fedoradump.sql
# mysql -uroot -pパスワード blog --default-character-set=binary < /backuprsync/blogdump.sql
# mysql -uroot -pパスワード taka --default-character-set=binary < /backuprsync/takadump.sql
# mysql -uroot -pパスワード centos --default-character-set=binary < /backuprsync/centosdump.sql

7.データベースを予備サーバーへ復元するスプリクトを作成

[root@server2 ~]# vi restore.sh
#!/bin/bash
mysql -uroot -pパスワード fedora --default-character-set=binary < /backuprsync/fedoradump.sql
mysql -uroot -pパスワード blog --default-character-set=binary < /backuprsync/blogdump.sql
mysql -uroot -pパスワード taka --default-character-set=binary < /backuprsync/takadump.sql
mysql -uroot -pパスワード centos --default-character-set=binary < /backuprsync/centosdump.sql
作成したリストアスクリプトへ実行権限付加
[root@server2 ~]# chmod 700 restore.sh
リストアスクリプトを実行してみる
[root@server2 ~]# ./restore.sh

※ 誤って古いデーターを上書きする可能性があるのでメインサーバーにはこの設定はしないこと!!

8.リストアスクリプト自動実行設定

[root@server2 ~]# echo "30 5 * * * root /root/restore.sh" > /etc/cron.d/restore

ちなみに予備サーバの自動実行設定は以下のようになっている。
/etc/cron.dには時間指定のスクリプトを入れておき、特に時間指定しなくても良さそうなものは/etc/cron.dailyにスクリプトを入れておく。

[root@server2 ~]# echo "30 3 * * * root /root/backuprsync.sh" > /etc/cron.d/backuprsync
[root@server2 ~]# echo "30 4 * * * root /root/backupshare.sh" > /etc/cron.d/backupshare
[root@server2 ~]# echo "30 5 * * * root /root/restore.sh" > /etc/cron.d/restore
[root@server2 ~]# echo "0 6 * * * root /root/mysqldump.sh" > /etc/cron.d/mysqldump
[root@server2 ~]# echo "15 6 * * * root /root/mysqlbackup.sh" > /etc/cron.d/mysqlbackup
[root@server2 ~]# echo "30 6 * * * root /root/backup.sh" > /etc/cron.d/backup
[root@server2 ~]# mv chkrootkit /etc/cron.daily/
[root@server2 ~]# mv clamscan /etc/cron.daily/

■その他のバックアップコマンド
下のコマンドでメインサーバーの/home配下にあるファイルとフォルダが予備サーバーの/home/userに丸ごとコピーされる。

[root@server2 ~]# rsync -avz -e ssh 192.168.1.4:/home/ /home/user

rsyncコマンドで使用されるオプションには以下のものがある。
rsnyc のオプション一覧
-v バックアップ時にバックアップしているファイル名を表示する
-r 指定したディレクトリ以下の各ディレクトリも再帰的にバックアップする
-l シンボリック・リンクをそのままにバックアップする
-H ハード・リンクをそのままにバックアップする
-p パーミッション属性を保存したままバックアップする
-o 所有者属性を保存したままバックアップ(root のみ可能)
-g グループ属性を保存したままバックアップ
-t タイムスタンプを保存したままバックアップ
-D デバイスファイルを保存したままバックアップ(root のみ可能)
-z データーを圧縮して転送する
-u 追加されたファイルだけバックアップする
--delete バックアップ元で削除されたファイルはバックアップ先でも削除する
-e ssh SSHの使用
--password-file パスワードファイルの指定
--existing 更新されたファイルだけをバックアップし、追加されたファイルはバックアップしない
-a 上記のオプションのうち rlptgoD を指定する