http://downloads.sourceforge.net/project/msmtp/msmtp/1.4.27/msmtp-1.4.27.tar.bz2
1、编译软件
tar jxvf msmtp-1.4.27.tar.bz2
cd msmtp-1.4.27
./configure --prefix=/usr/local/msmtp
make
make install
2、看一下配置文件在哪里
# /usr/local/msmtp/bin/msmtp --version
msmtp version 1.4.27
Platform: x86_64-unknown-linux-gnu
TLS/SSL library: OpenSSL
Authentication library: built-in
Supported authentication methods:
plain cram-md5 external login
IDN support: enabled
NLS: enabled, LOCALEDIR is /usr/local/msmtp/share/locale
Keyring support: none
System configuration file name: /usr/local/msmtp/etc/msmtprc#默认配置文件的路径
User configuration file name: /root/.msmtprc
Copyright (C) 2012 Martin Lambers and others.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License
There is NO WARRANTY, to the extent permitted by law.
3、msmtp的配置文件
mkdir -p /usr/local/msmtp/etc
touch /usr/local/msmtp/msmtp.log
vi /usr/local/msmtp/etc/msmtprc
输入以下内容
defaults
logfile /usr/local/msmtp/msmtp.log
account gmail
tls on
host smtp.gmail.com
port 587
from [email protected]
tls_certcheck off
auth login
user [email protected]
password password
account default : gmail
4、配置mutt
一般系统已经安装了,如果没有安装的话请使用 yum install mutt 安装
# tail -5 /etc/Muttrc
#vi /etc/Muttrc.local
set sendmail="/usr/local/msmtp/bin/msmtp"
set realname="测试服务器"
set use_from="yes"
set charset="UTF-8"
set editor="vi"
5、测试一下发送邮件
#echo "测试邮件内容" | mutt -s "测试邮件主题" [email protected]
tail -f /usr/local/msmtp/msmtp.log 看看有没有成功,或者进入上面的邮箱看看是否收到邮件。
1.监控mysql服务器的状态
2.当发现mysql down机就自动重启mysql服务
3.重启mysql不成功,发邮件给管理员警告mysql down机
#vi /usr/local/sbin/check_mysql.sh
cat << EOF
+--------------------------------------------------------------------------+
| === Welcome to LinuxTone=== |
|-------------------------http://www.linuxtone.org------------------------ |
+--------------------------------------------------------------------------+
EOF
PORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'`
MYSQLIP=`ifconfig eth0|awk '/inet/{print $2}'|cut -c 6-`
while [ `whoami` == "root" ]
do
if [ "$PORT" == "3306" ];then
echo "mysql is running......"
else
echo "restart mysql"
/etc/init.d/mysqld restart
if [ "$PORT" == "3306" ];then
echo "mysql restart successful......"
else
echo "mysql restart failure......"
echo "server: $MYSQLIP mysql is down,please try to restart mysql!" > /var/log/mymsg
mail -s "warn!server: $MYSQLIP mysql is down" hamgua\@gmail.com < /var/log/mymsg
fi
fi
break
done
赋予check_mysql.sh可执行的权限
#chmod u+x /usr/local/sbin/check_mysql.sh
加入crontab,让系统五分钟检测一次mysql状态
#crontab -l
*/5 * * * * /usr/local/sbin/check_mysql.sh > /dev/null 2>&1
参数介绍
选项 名称 功能
-n Hostnames 不将地址解析成主机名。
-h Maximum hops 搜索目标的最大跃点数。
-g Host-list 沿着路由列表释放源路由。
-p Period 在 ping 之间等待的毫秒数。
-q Num_queries 每个跃点的查询数。
-w Time-out 为每次回复所等待的毫秒数。
-T Layer 2 tag 将第 2 层优先级标记(例如,对于 IEEE 802.1p)连接到数据包并将它发送到路径中的每个网络设备。这有助于标识没有正确配置第 2 层优先级的网络设备。-T 开关用于测试服务质量 (QoS) 连通性。
-R RSVP isbase Che检查以确定路径中的每个路由器是否支持“资源保留协议 (RSVP)”,此协议允许主机为数据流保留一定量的带宽。 -R 开关用于测试服务质量 (QoS) 连通性。
默认的跃点数是 30,并且超时前的默认等待时间是 3 秒。默认时间是 250 毫秒,并且沿着路径对每个路由器进行查询的次数是 100。
以下是典型的 pathping 报告。跃点列表后所编辑的统计信息表明在每个独立路由器上数据包丢失的情况。
C:\Documents and Settings\Administrator>pathping www.163.com
Tracing route to 163.xdwscache.glb0.lxdns.com [60.173.8.216]
over a maximum of 30 hops:
0 ZHJ-WORK [192.168.1.166]
1 60.168.112.1
2 60.168.112.1
3 61.190.245.45
4 118.84.1.9
5 118.84.2.6
6 61.191.10.102
7 60.173.8.22
8 60.173.8.216
Computing statistics for 200 seconds...
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 ZHJ-WORK [192.168.1.166]
0/ 100 = 0% |
1 3ms 0/ 100 = 0% 0/ 100 = 0% 60.168.112.1
0/ 100 = 0% |
2 2ms 0/ 100 = 0% 0/ 100 = 0% 60.168.112.1
0/ 100 = 0% |
3 3ms 0/ 100 = 0% 0/ 100 = 0% 61.190.245.45
0/ 100 = 0% |
4 5ms 0/ 100 = 0% 0/ 100 = 0% 118.84.1.9
0/ 100 = 0% |
5 8ms 0/ 100 = 0% 0/ 100 = 0% 118.84.2.6
0/ 100 = 0% |
6 6ms 0/ 100 = 0% 0/ 100 = 0% 61.191.10.102
0/ 100 = 0% |
7 8ms 0/ 100 = 0% 0/ 100 = 0% 60.173.8.22
0/ 100 = 0% |
8 8ms 0/ 100 = 0% 0/ 100 = 0% 60.173.8.216
Trace complete.
当运行 pathping 时,在测试问题时首先查看路由的结果。此路径与 tracert 命令所显示的路径相同。然后 pathping 命令对下一个 125 毫秒显示忙消息(此时间根据跃点计数变化)。在此期间,pathping 从以前列出的所有路由器和它们之间的链接之间收集信息。在此期间结束时,它显示测试结果。
user www www;
worker_processes 8;
error_log /var/log/nginx_error.log crit;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;
server
{
listen 80;
server_name 192.168.10.60;
root /PATH/TO/YOUR/CI/FORLDER;
index index.html index.htm index.php index.shtml;
if ($request_filename !~* /(javascript|css|images|fckeditor|userfiles|crontab|robots\.txt|index\.php))
{
rewrite ^/(.*)$ /index.php?$1 last;
}
access_log /var/log/192.168.10.60-access.log;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht
{
deny all;
}
}
}
1.要尝试使用MongoDB首先必须要在命令行运行mongod服务
a. cd MONGO_HOME/bin
b. ./mongod --dbpath /data/mongodb/db/ --logpath /data/mongodb/logs/mongolog --logappend --fork
参数说明
--dbpath #指定db文件存放的目录
--port #指定mongod服务使用的端口
--fork #设置mongo服务为后台运行
--logpath #指定log文件的目录和文件名
--logappend #设置每次log添加在文件最后
--rest #关闭rest api功能
--nohttpinterface #关闭web管理功能
--auth #指定mongo使用身份验证机制
--bindip #用逗号分隔ip地址,用来指定
--f #将所有前面介绍的参数都可以存放到一个配置文件中,然后用这个参数调用配置文件来启动mongod服务
2.关闭MongoDB有几种方法
a. db.shutdownServer() #推荐优先使用
b. ctrl + c #在不使用 --fork参数的时候可以使用,可能会造成数据文件损坏
c. kill / kill -2 #在无法使用 a和b的情况下使用,可能会造成数据文件损坏
d. kill -9 #不在万不得已的情况下,不要使用这个方法
3. 查看MongoDB状态
a.db.runCommand({"serverStatus":1})
b.MONGO_HOME/bin/mongostat
4. 添加用户,切换用户 使 --auth参数起效
db.addUser("root","123")
db.addUser("read_only","123",true); #第3个参数表示设置readonly的状态
db.auth("read_only","123")
5. 数据库备份
有4种方法备份数据库
a. 关闭mongod服务后,复制--dbpath参数指定的数据文件。优点速度快,缺点需要停止mongo服务。
b. 使用mongodump 导出数据,并用mongorestore 导入数据。优点不需要停止mongo服务,缺点在mongodump操作时用户插入的数据可能无法备份出来。
c. fsync and lock锁定数据库的让用户只能使用read功能,再使用方法b导出并导入数据。优点不需要停止mongo服务,缺点在数据库lock期间用户无法执行insert操作。
d. 使用slaveDB并且 使用方法c锁定slaveDB,再使用方法b导出并导入数据。优点不需要停止mongo服务,不会影响用户insert操作(推荐使用此方法)。
6. 修复数据库
当数据库文件遭到损坏的时候有3种方法修复数据文件
a. MONGO_HOME/bin/mongod --repair
b. use test
db.repairDatabase()
c. db.runCommand({"repairDatabase":1});