PHP慢執行日誌、定時自動切割日誌+共享文件+expect遠程同步

discus+dedecms站點配置php獨立pool

以這裏http://blog.51cto.com/8229148/2055141 配置的discuz+dedecms 站點爲例

● vim /usr/local/php/etc/php-fpm.conf
##在[global]部分添加內容
include = etc/php-fpm.d/*.conf ##//設置檢查etc/php-fpm.d/的*.conf 配置文件

● mkdir /usr/local/php/etc/php-fpm.d/ ##創建添加*.conf文件的目錄
● cd /usr/local/php/etc/php-fpm.d/ ###創建
touch discus.conf
touch dedecms.conf
(zrlog是用tomcat解析,不用在php創建pool)
● 編輯創建 配置文件,添加慢執行日誌
vim discus.conf
內容如下

[discuz]
listen = /tmp/discuz.sock 
#listen = 127.0.0.1:9000 
listen.mode = 666 
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
request_slowlog_timeout=2  //執行超過2秒就記錄日誌
slowlog =/usr/local/php-fpm/var/log/discuz-slow.log   //慢執行日誌輸出路徑

vim dedecms.conf
內容如下

[dedecms]
listen = /tmp/dedecms.sock 
#listen = 127.0.0.1:9000 
listen.mode = 666 
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
request_slowlog_timeout=2  //執行超過2秒就記錄日誌
slowlog =/usr/local/php-fpm/var/log/dedecms-slow.log   //慢執行日誌輸出路徑

● 必須同步到nginx虛擬主機的配置sock
vim /usr/local/nginx/vhost/discus.conf
將默認的 unix:/tmp/php-fpm.sock改爲 unix:/tmp/discuz.sock

vim /usr/local/nginx/vhost/dedecms.conf
將默認的 unix:/tmp/php-fpm.sock改爲 unix:/tmp/dedecms.sock

● 檢測創建的配置是否正確,再重新加載生效
/usr/local/php-fpm/sbin/php –t
/usr/local/nginx/sbin/nginx -t
/usr/local/php-fpm/sbin/php -s reload
/usr/local/nginx/sbin/nginx -s reload

靜態文件不記錄日誌
, /usr/local/nginx/conf/vhost/*.conf 子配置文件中加入如下參數

location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}
location ~ .
.(js|css)$
{
expires 30d;
access_log off;
}

定時自動切割php日誌腳本

日誌切割
• vim /usr/local/sbin/php-fpm_logrotate.sh//寫入如下內容

#! /bin/bash
#php-fpm的日誌存放路徑爲/usr/local/php-fpm/var/log/
d=`date -d "-1 day" +%Y%m%d`
logdir="/usr/local/php-fpm/var/log/"
cd $logdir
for log in `ls www-slow.log`
do
mv $log $log-$d
done
##3 自動刪除一個月以前的日誌
find /usr/local/php-fpm/var/log/ -name www-slow.log-* -type f –mtime +30 |xargs rm

創建計劃任務啓動腳本
crontab –e
內容
0 0 * /bin/bash /usr/local/sbin/php-fpm_logrotate.sh

文件共享配置

思路:將網站目錄所在服務器定義爲服務端 去掛載到、/mnt
服務器:192.168.200.127
客戶端:192.168.200.118~123
服務端下載: yum install -y nfs-utils rpcbind
客戶端下載: yum install -y nfs-utils
服務器端:
vim /etc/exports
/data/wwwdiscuz/data/attachment
192.168.200.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

選項配置
#rw 讀寫
#ro 只讀
#sync 同步模式,內存數據實時寫入磁盤
#async 非同步模式
#no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大
#root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
#all_squash 客戶端上所有用戶在使用NFS共享目錄時都被限定爲一個普通用戶
#anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid

chmod 777 /data/wwwdiscuz/data/attachment
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
netstat -lntp (服務端客戶端都查)
ps aux |grep rpc
ps aux |grep nfs

客戶端掛載:
iptables -F (所有)
systemctl stop firewalld
setenforce 0
service rpcbind restart
service nfs restart
showmount -e 192.168.200.118
mount -t nfs 192.168.200.118:/data/wwwdiscuz/data/attachment /mnt/
df -h
客戶端 cd /mnt/ ls

expect同步分發系統(主機117)

主機
● yum install –y expect #shell分發主機
yum install –y rsync
● 自動遠程登錄,並執行命令,創建expect腳本內容如下

vim updatefile.expect

#!/usr/bin/expect
set passwd "123456"
set host [lindex $argv 0]  //設置主機IP名稱
set file [lindex $argv 1]  //設置要同步是文件,要絕對路徑
spawn rsync -av $file root@$host::$file   #rsync增量同步本機的$file文件到 ip的$file文件
                                                                  #rsync同步的時候沒有文件會自動創建
expect {
"yes/no" { send "yes\r"; exp_continue}
"passwd:" {send "$passwd\r"}
}
expect eof //要有這個默認等待,不然同步沒有運行就退出expect遠程

運行
updatefile.expect 目標主機的ip /home/wwwroot/discuz/xxxx(同步的文件)

#//同步本機的/home/wwwroot/discuz/xxxx文件 同步到 遠程192.168.133.132 主機的/home/wwwroot/discuz/xxxx文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章