rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm会报错:
rpm -Uvh http://mirror.overthewire.com.au/pub/epel/6/i386/epel-release-6-7.noarch.rpmCentOS 6.x 64-bit (x64):
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpmCentOS 5.x 32-bit (x86/i386):
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpmCentOS 5.x 64-bit (x64):
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpmDisable EPEL Repo:
vim /etc/yum.repos.d/epel.repo
CentOS的用户登录记录存放在/var/log下,分别是:
1.登录成功的记录(Last Logged In Users),位置:/var/log/wtmp
通过命令last可以查看记录列表
[root@vps ~]# last
2.登录失败的记录(Bad Login Attemps Log),位置:/var/log/btmp
通过命令lastb可以查看记录列表
[root@vps ~]# lastb
清空登录历史记录:
[root@vps ~]# > /var/log/wtmp
再来解决:
24: Too many open files
Linux系统对一个进程打开的文件句柄数量的限制,默认只有1024,并发高一点就达到这个限制了。
搞定,重启nginx,观察几天看看。
有时出于安全考虑,可以添加一个SSH登录提醒功能,当用户登录SSH后收到提醒。
提醒功能可以通过邮件或其它功能发送,俺使用的是一个iOS使用“推送信使”提供了URL回调接口,设置好参数后用curl请求一下,一条报警信息就推送到手机。
user=$USER
ip=${SSH_CLIENT%% *}
date=$(date "+%Y-%m-%d_%H:%M")
title="用户$user登录了系统"
content="时间:${date}%0dIP地址:$ip"
app="SSH监控"
url="http://whois.pconline.com.cn/ip.jsp?ip=$ip"
pushMessage() {
params="uid=1&secret=6Y2FN7&app=$app&title=$title&content=$content&slient=1&url=$url"
url="http://ipush.me/api-push?$params"
curl --connect-timeout 3 -m 3 -s $url
}
pushMessage
现在大部分VPS都是Unmanaged的,虽然都宣称做了RAID10但在论坛上偶尔还是有看到数据丢失的事情,更多的情况是碰到不符合VPS商的服务条款而被关闭了帐号没及时备份造成的。
正好有一个15刀/年的VPS,由于拿来放网站线路经常抽风所以一直空在那里,现在可以派上用场了。
首先确保正式服务器上安装了lftp(ftp命令行客户端),备份服务器上安装了ftp服务端(任意)。
第一次折腾bash,现学现卖,功能是备份mysql中一个或多个数据库并打包传送到远程ftp服务器中去:
#!/bin/bash
# --------------- 配置项 -------------
# 数据库用户
DB_USER="root"
# 数据库密码
DB_PASSWD="123456"
# 要备份的数据库名,多个用空格分开
DB_BACKUP_DATABASE_LIST="db1 db2"
# 备份文件本地存放路径
DB_BACKUP_DIR="/home/hee/backup/db"
# 远程FTP配置信息,格式:用户名:密码@服务器地址
REMOTE_FTP_DSN="user:passwd@ip"
# ------------ 以下内容无需编辑 -------------
YYYYMMDD=$(date +%Y-%m-%d)
# -----------------------------------
DB_BACKUP_FILE="$DB_BACKUP_DIR/$YYYYMMDD.sql.gz"
# -----------------------------------
mkdir -p $DB_BACKUP_DIR
cd $DB_BACKUP_DIR
mysqldump --user=$DB_USER --password=$DB_PASSWD --lock-all-tables --databases $DB_BACKUP_DATABASE_LIST | gzip > $DB_BACKUP_FILE
lftp $REMOTE_FTP_DSN -e "put $DB_BACKUP_FILE;exit;"
然后设置一个定时任务,按想要的时间定时执行一下就OK了。
vi /etc/crontab
01 13 * * * elliott /home/username/bak.sh
每天中午1点1分执行备份操作。
eAccelerator是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,使得一向很复杂和离我们很远的PHP脚本编译问题完全得到解决。通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍。
eAccelerator通过把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。它的效率非常高,从创建共享内存到查找编译后的代码都在非常短的时间内完成,对于不能缓存到共享内存中的文件和代码,eAccelerator还可以把他们缓存到系统磁盘上。
参照linode安装指南上的方法,默认是没有安装eAccelerator的,得自己把这功能加上。安装前先了解下另一个东东:phpize。
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。比如你想在原来编译好的php中加入eAccelerator或者memcached等扩展模块,可以使用phpize。
基础知识了解完了后,开始安装:
# 安装phpize yum install php-devel # 下载eaccelerator wget http://soft.vpser.net/web/eaccelerator/eaccelerator-0.9.6.1.zip unzip eaccelerator-0.9.6.1.zip cd eaccelerator-0.9.6.1 phpize ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config make make install
如果在make时出现:error: "zend_property_info" has no member named "ce" 错误,做如下修改:
vi ea_store.c #用//注释掉683行return (child_info->ce != from) #然后重新make 和 make install
编辑php.ini:
vi /etc/php.ini # 在结尾加入 zend_extension="/usr/lib/php/modules/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9"
创建eAccelerator缓存目录:
mkdir /tmp/eaccelerator chmod 0777 /tmp/eaccelerator
重启php-fastcgi:/etc/init.d/php-fastcgi restart
查看一下phpinfo吧 :-)