Linux 大量のファイルを削除する方法

通常の削除

rm -rf *

ls結果を削除

ファイル数が多すぎる等、rmコマンドが実行できなくなる場合
ls | xargs rm
表示したファイルリストからファイルを削除

ファイル名一覧を読み込んで削除

しかしsakuraの場合ディスクI/Oに制限がある為、lsに失敗する。
ls | head -n 10
数件のみ表示
さえダメな場合

1) ファイルリストをテキストへ出力
ls | head -n 1000 > list.txt

2) ファイルリストを読み込んで削除
cat list.txt | xargs rm

1)~2)を繰り返す

Linux CRON

設定確認

croptab -l

設定

設定ファイル

/etc/crontab

設定コマンド

crontab -e

曜日 コマンド 機能
00 10 * * 4 test.sh 00 10 *
* 4 /test/test.sh
毎週水曜日10:00
*/10 * * * * */10 * *
* * /test/test.sh
10分毎に実行
0 2 * * * 0 2 *
* * /test/test.sh
2時に実行

設定消去

crontab -r

実行ログ

tail -f /var/log/cron

Linux TCPWrappers

TCPWrappersとは

ネットワーク接続制御デーモン
デーモン名:tcpd

各サービスの処理前に接続要求を受け取り、
hosts.allow」と「hosts.deny」を参照して接続可否を判断する
接続を許可する場合は、それぞれのサービスに処理を渡す

設定

書式

daemon_list : host_list


111.222.333.444はFTPアクセス可
vsftpd : 111.222.333.444

全ホストからFTPアクセス可
vsftpd : ALL

全ホストから全サービス可
ALL : ALL

daemon_list

daemon_list 機能
ALL 全デーモン
crond クーロン
httpd Apache
mysqld MySQL
vsftpd FTP

host_list

host_list 機能
ALL 全ホスト
LOCAL 「.」を含まないホスト(例:localhost)
UNKNOWN アクセス元のユーザー名かホスト名のいずれかが不明な場合
KNOWN アクセス元のユーザー名とホスト名が両方ともわかっている場合
PARANOID ホスト名とIPアドレスが異なる場合
EXCEPT 例外
111.222.333.444 IPアドレス
.co.jp ドメイン

/etc/hosts.allow

アクセス許可リスト

/etc/hosts.deny

アクセス拒否リスト

優先順位

hosts.allow 優先


hosts.deny 後回し

ホワイトリスト(許可ホスト)設定方法

※hosts.allow
XXXX : 111.222.333.444

※hosts.deny
XXXX : ALL

Linux ログ

syslog

syslogとは

linuxのログ出力デーモン
Linuxを含めたアプリ毎のログ出力を管理できる

syslog一覧

出力先 機能
/var/log/boot.log システム起動時のログ
/var/log/mail.log メールシステムのログ
/var/log/cron cronのログ
/var/log/secure 認証関連のログ
/var/log/dmesg システム起動時のdmesgの内容
/var/log/lastlog 最終ログイン情報の記録
/var/log/wtmp ログイン情報の記録
/var/log/anaconda.* インストーラのログ
/var/log/messages 上記に含まれないログ
多くのアプリでのデフォルト出力先
syslog設定

/etc/rsyslog.conf
/etc/syslog.conf

ローテーション設定

/etc/logrotated.conf

TOMCATログ

ログファイル名 機能
catalina.log Tomcat webサーバーの管理関係
catalina.out webサーバーの起動・停止、サービスの開始・停止ログ
localhost.log hostに限定したログ
host-manager.log Tomcat host manager web app関係
ログ出力設定

※server.xml
<Context path="/sampleAP" docBase="/home/sample/webapp">
 <Valve className="org.apache.catalina.valves.AccessLogValve"
  directory="/home/sample/log"
  prefix="access-"
  fileDateFormat="yyyy-MM-dd"
  suffix=".log"/>
</Context>

サーバログ出力設定

(Catalina、標準出力、標準エラー出力)
※logging.properties(Tomcat6以降)
handlers =
 catalina.org.apache.juli.FileHandler,(ファイルに出力するログの設定)
 java.util.logging.ConsoleHandler (コンソールに出力するログの設定:標準出力、標準エラー出力)
.handlers =
 catalina.org.apache.juli.FileHandler,
 java.util.logging.ConsoleHandler
# ファイルに出力するログの設定
catalina.org.apache.juli.FileHandler.level = FINE (ログレベル)
catalina.org.apache.juli.FileHandler.directory = /var/log (ログの出力先)
catalina.org.apache.juli.FileHandler.prefix = catalina. (ログファイルの開始文字)
# コンソールに出力するログの設定:標準出力、標準エラー出力
java.util.logging.ConsoleHandler.leverl = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# 各コンテキストのログの設定も可能
org.apache.catalina.core.ContainerBase.[sever.xmlのEngineタグのname].[server.xmlのHostタグのname].[コンテキスト].level = INFO
org.apache.catalina.core.ContainerBase.[sever.xmlのEngineタグのname].[server.xmlのHostタグのname].[コンテキスト].handlers= catalina.org.apache.juli.FileHandler
# 例
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sampleAP].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/sampleAP].handlers= 6sample.org.apache.juli.FileHandler

APCHEログ

WEBサーバー:Apache」参照

SSHログ

/var/log/secure

Linux ディレクトリ構成

/ルートディレクトリ
├ /bin 基本コマンド
├ /boot 起動に必要なファイル
├ /dev デバイスファイル
├ /etc 設定ファイル
  ├ /named.conf ドメイン、サーバー定義ファイル
  ├ /httpd
    ├ /conf/httpd.conf Apache設定ファイル
    └ /conf.d/phpmyadmin.conf phpMyAdmin設定ファイル
  ├ /php.ini PHP設定ファイル(RedHat)
  ├ /php5/cli/php.ini PHP設定ファイル(Debian)
  ├ /sysconfig/network ネットワーク情報
  └ /hosts ホスト情報
├ /home ユーザーのホームディレクトリ(オプション)
├ /lib 共有ライブラリ(オプション)
├ /mnt 一時的なマウントポイント
├ /opt 追加アプリケーション
├ /proc プロセス情報など
├ /root root用ホームディレクトリ(オプション)
├ /sbin システム管理用コマンドなど
├ /tmp 一時的なファイル
├ /usr 各種プログラムなど
└ /var 変更されるデータ
  ├ /named/(ドメイン名).zone ドメイン正引きzoneファイル
  ├ /named/(ドメイン名).rev ドメイン逆引きzoneファイル
  └ /www/html Apache公開ディレクトリ(デフォルト)