检测mysql是否运行,如崩溃自动重启

最好的办法,当然是从根源上避免程序崩溃。
但是在一个512M内存的小服务器上,数据库崩溃还是无法完全避免。
方法一
做个脚本。不过这个方法有点绕远了。
#!/bin/bash
if (( $(ps -ef | grep -v grep | grep mysqld | wc -l) <= 0 ))
then
   echo “MySQL is currently not running and will be restarted!” | mail -s “MySQL may have crashed” -r from@dingxuan.info to@dingxuan.info
   service mysqld restart
else
   echo “Running”
fi
加入crontab
*/5 * * * * /root/mysql_monitor.sh
方法二
比前一种更简洁。首先,可以测试一下数据库运行状态。mysqld 或者mariadb
/sbin/service mysqld status
echo $?
如果返回值不是0,说明运行状态异常。所以可以用这个作为判断依据,来控制是否执行启动命令。
/sbin/service mysqld status || service mysqld start
加到crontab里,每分钟运行一次。
* * * * * /sbin/service mysqld status || service mysqld start
延伸:测试apache运行状态
同理,要测试如无法访问某网址,则重启apache:
*/2     *       *       *       *       wget -q dingxuan.info || service httpd restart

部署病毒及恶意脚本检测程序 Rkhunter / ClamAV / LMD

部署三个检测工具rkhunter,ClamAV及Linux Malware Detect (LMD)。分别用于rootkit和恶意脚本检测。
1.ClamAV
yum install clamav clamav-update clamav-scanner-systemd clamav-server-systemd
yum install clamav
sudo sed -i -e “s/^Example/#Example/” /etc/freshclam.conf
sudo sed -i -e “s/^Example/#Example/” /etc/clamd.d/scan.conf
freshclam
clamscan -r -i /var/www/html
2.Rkhunter
yum install rkhunter
rkhunter –propupd
rkhunter -u
rkhunter –checkall
cat /var/log/rkhunter/rkhunter.log | grep -i warning
3.LMD
tar -xvf maldetect-current.tar.gz
cd maldetect-1.4.2
./install.sh
vim /usr/local/maldetect/conf.maldet
/usr/local/maldetect/conf.maldet 典型配置:
email_alert=1
email_subj=”Malware alerts for $HOSTNAME – $(date +%Y-%m-%d)”
quar_hits=1
quar_clean=1
clam_av=1
maldet -u
maldet –scan-all /var/www/html

后续:日常检查 / crontab设置

maldet -u
freshclam
rkhunter -u
rkhunter –propupd
rkhunter –sk –checkall
maldet –scan-all /var/www/html

CentOS 6 Web服务器迁移

一台老服务器用了5年了。为了保证稳定性,在它出毛病之前,预先换台新服务器。
本文记录了服务器迁移的全部过程。
本文档参考了本文的大纲:
同时在实践工作中,加入了自己的方法和经验。
全部内容分为以下几部分
  1. 建立用户
  2. 复制网站目录
  3. 修改本地hosts文件,准备测试
  4. 安装所有必要程序
  5. 复制程序配置文件
  6. MySQL数据迁移
  7. MYSQL数据迁移后,原主机上数据有更新怎么办?
  8. MYSQL数据迁移后,如何验证数据相符?
  9. 拷贝常用管理脚本
  10. 拷贝crontab

继续阅读CentOS 6 Web服务器迁移

CentOS 6下,远程安装KVM虚拟机,并使用apache mod_proxy反向代理建立多个web服务器

目录:
0. 配置目的及方案简介
1. 安装KVM
2. 安装配置VNC远程控制
3. 在KVM虚拟机安装CentOS 6
4. NAT网络配置
5. 使用iptables防火墙配置,SSH,FTP
6. 使用反向代理配置Web server
7. 虚拟机中的Mysql配置
8. 后续:iptables规则优化,虚拟机自动快照备份 继续阅读CentOS 6下,远程安装KVM虚拟机,并使用apache mod_proxy反向代理建立多个web服务器

vsftpd调试

默认的vsftpd日志很简单。出现问题时,不容易找到原因。
以下参数,打开详细日志。

# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/users/vsftp_nobody/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=NO
#The log_ftp_protocol=YES will log every FTP protocol transaction between the client and the server (this is the most detailed log you can get).
log_ftp_protocol=YES

注意,在log_ftp_protocol=YES时,这一项必须是no:xferlog_std_format=NO。否则会得到:

500 OOPS: bad bool value in config file for: log_ftp_protocol

附件:vsftpd.conf参数详解