为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`
默认日志位于/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即可
#!/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即可
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
安装脚本如下:
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
限制nginx ip并发数和限制速度
[ 2015/09/17 14:54 | by admin ]
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
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