为nginx做日志切割一例

[不指定 2015/09/17 15:03 | by admin ]
nginx安装于/home/web/nginx/
默认日志位于/home/web/nginx/logs/
开设的网站日志存放于/home/logs/目录
对于每天产生的日志,按日期建立目录,把当天的nginx日志移到日期目录内,再重启nginx而产生记录新日志,并过过期日志做自动删除

任务计划如下:
echo "59 23 * * * /home/web/nginx/sbin/cut.sh"  >>/var/spool/cron/root

/home/web/nginx/sbin/cut.sh
内容如下:
#!/bin/bash
# This script will run at 23:59 everyday and will del 10 days ago's log by auto
# The Nginx logs path
logs_path="/home/logs/"
mkdir -p ${logs_path}/$(date -d "today" +"%Y%m%d")
mv ${logs_path}/*.log ${logs_path}/$(date -d "today" +"%Y%m%d")/
mv /home/web/nginx/logs/access.log ${logs_path}//$(date -d "today" +"%Y%m%d")/
mv /home/web/nginx/logs/error.log ${logs_path}//$(date -d "today" +"%Y%m%d")/
rm -rf ${logs_path}/$(date +%Y%m%d -d '10 days ago')
kill -USR1 `cat /home/web/nginx/logs/nginx.pid`

yum安装vsftpd另一例

[不指定 2015/09/17 14:58 | by admin ]
使用yum安装vsftpd,打开所需的日志,并开启被动模式,脚本如下,另存为sh,直接运行即可。

#!/bin/bash

echo "--------------------------------vsftpd 自动安装脚本--------------------------------"
#Disable SeLinux
if [ -s /etc/selinux/config ]; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
fi
setenforce 0
yum -y install vsftpd
sed -i 's#anonymous_enable=YES#anonymous_enable=NO#'  /etc/vsftpd/vsftpd.conf
sed -i 's\xferlog_std_format=YES\#xferlog_std_format=YES\'  /etc/vsftpd/vsftpd.conf
echo "chroot_local_user=YES" >>/etc/vsftpd/vsftpd.conf
echo "dual_log_enable=YES" >>/etc/vsftpd/vsftpd.conf
echo "vsftpd_log_file=/var/log/vsftpd.log" >>/etc/vsftpd/vsftpd.conf
echo "listen_port=21" >>/etc/vsftpd/vsftpd.conf
echo "pasv_enable=YES" >>/etc/vsftpd/vsftpd.conf
echo "pasv_min_port=20000" >>/etc/vsftpd/vsftpd.conf
echo "pasv_max_port=20500" >>/etc/vsftpd/vsftpd.conf
mkdir -p /wwwroot/htdocs
groupadd www
useradd www -g www -d /wwwroot/htdocs -s /sbin/nologin
passwd www
chown www.www /wwwroot/htdocs
chkconfig vsftpd on
service vsftpd start
echo "--------------------------------vsftpd 安装说明------------------------------------"
echo "|                                                                                  |"
echo "|               用户为 www 密码为刚才所设 FTP根目录为/wwwroot/htdocs               |"
echo "| 新增用户样例为(新增用户ktm):useradd ktm -g www -d /wwwroot/ktm -s /sbin/nologin  |"
echo "|                              service vsftpd restart                              |"
echo "|                                                                                  |"
echo "--------------------------------vsftpd 安装结束!-----------------------------------"
sleep 2

防火墙就不直接更改了,注意另外打开端口20000-20050即可
Tags:

centos安装glibc版本的mysql5.5.x

[不指定 2015/09/17 14:55 | by admin ]
准备相应的mysql程序,软件安装在/home/web目录,因不用再花大量时间编译,安装很快,较省时。

安装脚本如下:

cur_dir=$(pwd)

# 配置myisam或innodb方式
read -p "do you want to install the InnoDB Storage Engine? (y/n)" mysqlengineer
if [ "$mysqlengineer" = 'y' ]; then
  echo "mysqlengineer is innoDB"
elif
[ "$mysqlengineer" = 'n' ]; then
  echo "mysqlengineer is MYSIAM"
else
   mysqlengineer="y" && echo "mysqlengineer is innoDB"
fi

#确认后暂停

get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo ""
echo "Press any key to start..."
char=`get_char`

#开始安装
mkdir -p /home/web

if [ `uname -m` = "x86_64" ] ; then
tar zxvf mysql-5.5.44-linux2.6-x86_64.tar.gz
mv mysql-5.5.44-linux2.6-x86_64 /home/web/mysql
else
tar zxvf mysql-5.5.44-linux2.6-i686.tar.gz
mv mysql-5.5.44-linux2.6-i686 /home/web/mysql
fi

cd /home/web/mysql/
groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql -d /dev/null
rm -f /etc/my.cnf
cp /home/web/mysql/support-files/my-medium.cnf /etc/my.cnf
sed -i 's/log-bin=mysql-bin/#log-bin=mysql-bin/g' /etc/my.cnf
sed -i 's/binlog_format=mixed/#binlog_format=mixed/g' /etc/my.cnf
sed -i 's/skip-federated/#skip-federated/g' /etc/my.cnf
sed -i 's/skip-locking/skip-locking\nmax_connections = 1000\nwait_timeout = 5/g' /etc/my.cnf
sed -i 's:/usr/local/:/home/web/:g' /etc/my.cnf
if [ $mysqlengineer = "y" ]; then
sed -i 's:#innodb:innodb:g' /etc/my.cnf
else
sed '/skip-external-locking/i\default-storage-engine=MyISAM\nloose-skip-innodb' -i /etc/my.cnf
fi

/home/web/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/home/web/mysql --datadir=/home/web/mysql/data --user=mysql
chown -R mysql /home/web/mysql/data
chgrp -R mysql /home/web/mysql/.
cp /home/web/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
sed -i 's:/usr/local:/home/web:g' /etc/init.d/mysqld
service mysqld start
/home/web/mysql/bin/mysqladmin -u root password no123654
Tags:
nginx自从1.1.8版本发布后将limit_conn更换为limit_conn_zone

1.添加limit_zone   这个变量只能在http使用
nginx.conf中:
http {   } 段内添加:
    limit_conn_zone $binary_remote_addr zone=perip:10m;

2.添加limit_conn   这个变量可以在http, server, location使用
针对某个站点,可以直接加到站内配置文件中,如:

        location / {
                index  index.html index.htm index.php;
        limit_conn perip 1;
        limit_rate 100k;
        }

也可以单独加段 location,并配置上要限制的目录

        location /data/ {
        limit_conn perip 1;
        limit_rate 100k;
        }

说明:
limit_conn perip 10;    每个IP使用10个连接
limit_rate 100k;        限制1个连接速度为100k
Tags:
分页: 6/23 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]