08
2020
03

Ecs服务器申请ipv6,配置-Centos

服务器提供商阿里云

ecs服务器,服务器版本 Centos 6.5 64

一,开启ipv6支持 修改网络配置

vim /etc/sysconfig/network
PEERNTP=no
NETWORKING_IPV6=yes
:wq

vim  /etc/modprobe.d/disable_ipv6.conf
alias net-pf-10 off
options ipv6 disable=0
:wq

vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=yes
IPV6_AUTOCONF=yes
:wq

vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
:wq

vim /etc/sysconfig/modules/ipv6.modules
!/bin/sh
if [ ! -c /proc/net/if_inet6 ] ; then
exec /sbin/insmod /lib/modules/uname -r/kernel/net/ipv6/ipv6.ko
fi
:wq
chmod +x /etc/sysconfig/modules/ipv6.modules
reboot #重启
ifconfig # 查看是否已经支持ipv6

二,申请ipv6

地址:http://tunnelbroker.net

创建用户-登录

左侧有个 Create Regular Tunnel 点击创建IP通道,输入IP地址检测,选择地址一般默认是US ,可以选择香港

创建成功,找到Example Configurations Centos 6.5 选择 linux-net-route 7.0以上 选择 linux-net-tool

复制命令,到服务器上去执行


直接在服务器上测试好了,ping6 ipv6地址。 测试OK!

23
2019
01

vmware Centos 6.5 静态IP设置,直接使用物理网络

vmware Centos 6.5 静态IP设置,直接使用物理网络

1,安装系统 ,新建虚拟机

2,设置虚拟机网卡设置为桥接,直接复制物理网络

3,设置centos ip静态ip [根据本地IP来设置]

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0                    #描述网卡对应的设备别名
BOOTPROTO=static                 #设置网卡获得 ip 的方式,选项:static【静态指定】、dhcp【协议】、bootp【协议】
HWADDR=00:0c:29:24:e2:1b
IPV6INIT=no
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
UUID="e6ecacb0-4608-47f9-b56c-49c5d2f61e2a"
IPADDR=192.168.178.131             #设置自己喜欢的ip地址,保持在同一个网段
NETMASK=255.255.255.0              #网卡对应的网络掩码
GATEWAY=192.168.178.2              #保持在同一网段,末尾设置为2
DNS1=192.168.178.2                #DNS1服务器的地址,保持在同一网段,末尾设置为2
USERCTL=no
vim /etc/sysconfig/network
NETWORKING=yes  #设置
service network restart

ok!

12
2018
06

centos 查看 apache 连接数

Linux下查看apache连接数

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):

Linux命令:

     ps -ef | grep httpd | wc -l



查看Apache的并发请求数及其TCP连接状态:

Linux命令:

     netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'


返回结果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057

说明:  
   SYN_RECV表示正在等待处理的请求数;
    ESTABLISHED表示正常数据传输状态;
   TIME_WAIT表示处理完毕,等待超时结束的请求数。


19
2018
03

centos libreoffice word 转 pdf html 相互转换

由于COM 组件不支持linux,php调取就比较困难,试过其他的方法会出现乱码情况。

直接使用组件对文档进行操作

1,直接开始,安装libreoffice

下载 libreoffice LibreOffice_5.1.2_Linux_x86-64_rpm.tar.zip

链接:https://pan.baidu.com/s/1HUy5UDhKhlT5FN1wVRzDnw 密码:46i7

2, 安装

unzip LibreOffice_5.1.2_Linux_x86-64_rpm.tar.zip
tar -zxvf LibreOffice_5.1.2_Linux_x86-64_rpm.tar.gz
cd LibreOffice_5.1.2.2_Linux_x86-64_rpm
cd RPMS/
yum -y install *.rpm

[root@localhost office]# libreoffice --version
LibreOffice 4.3.7.2 430(Build:2)

[root@localhost office]#

 安装成功!

命令:libreoffice --invisible --convert-to html 11.docx

会生成一个相同前缀不同类型文件。

html 是指定类型 可以修改成 pdf  word  还有其他类型,有待深入

[root@localhost office]# ll
total 20
-rw-r--r-- 1 root root 11189 Mar 19 16:46 11.docx
-rw-r--r-- 1 root root  1651 Mar 19 16:49 11.html
drwxr-xr-x 4 root root  4096 Mar 31  2016 libreoffice
[root@localhost office]#


05
2018
01

Centos Nginx mail和网站 负载搭建

环境: 一个公网IP 交换机 内网负载服务器A WEB服务器W 邮件服务器M

服务器环境 Centos 6.5

实现:公网IP直接映射 A,A分发到其他内网服务器上,WEB服务器 邮件服务器 负载和邮件服务器之间smtp imap 使用端口转发


开始:


1,A服务器 安装nginx

http://nginx.org/en/download.html Nginx官网

我下载的是1.8版本

cd /
mkdir local
cd local
wget  
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure
make && make install

因为邮箱smtp imap 不使用Nginx Mail模块,不需要装邮箱模块,直接 ./configure 默认配置安装

Nginx安装成功!


2,解析域名

    域名A记录 smtp  imap pop3 记录解析到公网IP mx 记录解析到域名 @记录解析


3,交换机添加端口映射

    公网IP -> A服务器 开放端口 80 25 143 110

    #邮件没有使用ssl 端口用默认


4,启动NGINX 配置

默认安装Nginx 安装目录 

/usr/local/nginx

启动命令

/usr/local/nginx/sbin/nginx  

ps auxww | grep nginx # 查看是否正常启动

配置添加WEB转发

cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak #备份默认配置
vim nginx.conf

#配置

    #gzip  on;

        server {
                listen 80;
                server_name www.a.com;
                location / {
                        proxy_pass W 服务器地址;
                }
        }

        server {
                listen 80;
                server_name a.com;
                location / {
                        proxy_pass W 服务器地址;
                }
        }       
        
        
        server {
                listen 80;
                server_name mail.a.com;
                location / {
                        proxy_pass M 服务器地址;
                }
        }

        server {
            listen       80;
            server_name  smtp.a.com;
            location / {
                proxy_pass   M 服务器地址;
            }
    
        }

        server {
            listen       80;
            server_name  imap.a.com;
            location / {
                proxy_pass  M 服务器地址;
            }
    
        }

nginx.conf 如果不用默认default 80 记得删除server配置

/usr/local/nginx/sbin/nginx -s reload #加载配置
service iptables stop #先关闭防火墙

不出问题负载已经搭建好 WEB 端请求分发已经OK,邮件还是不能用,记得将nginx 加入自启动计划。


5,邮箱服务配置

A服务器设置

  echo 1 >/proc/sys/net/ipv4/ip_forward  #允许转发
  iptables -t nat -A POSTROUTING -j MASQUERADE
  iptables -t nat -A PREROUTING -p tcp -m tcp --dport 25 -j DNAT --to-destination M服务器IP:25
  iptables -t nat -A PREROUTING -p tcp -m tcp --dport 143 -j DNAT --to-destination M服务器IP:143
  /etc/init.d/iptables save  #保存配置

pop3 端口可以根据自己情况自行添加。

测试

  windows cmd

telnet 公网IP 25

端口通了,邮箱端口转发已经OK。


Foxmail设置添加邮箱账号OK,发送邮件OK


很顺利的配置,这样就OK ,当然中间肯定是会出现问题,可自行解决。


31
2017
05

Centos 自动同步时间设置

1,安装ntpdate 服务器,一般系统自带,没有就yum -y install ntpdate

2,设置服务器时区-上海时间为例子

[root@localhost ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3,向时间服务器请求数据同步

[root@localhost ~]# ntpdate us.poll.ntp.org

时间时间基本完成

4,自动同步 加入crontab 自动计划中

[root@localhost ~]# crontab -e

0-59/5 * * * * /usr/sbin/ntpdate us.pool.ntp.org
#5 分钟请求一次

image.png

最后记得启动下计划任务:

image.png

[root@localhost ~]# chkconfig crond on

加入自启动

31
2017
05

Centos 网卡设置样本

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE="eth0"
BOOTPROTO=none
BROADCAST="172.255.255.255"
NETMASK="255.0.0.0"
IPADDR="172.31.255.126"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="f83e465e-dbdb-4843-99c5-199783e89e99"
HWADDR=00:0C:29:6C:40:1B
PREFIX=8
GATEWAY=172.31.255.177
DNS1=211.157.15.189
DOMAIN=172.31.255.177
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME="System eth0"
LAST_CONNECT=1496195215

:wq

[root@localhost ~]# /etc/init.d/network restart

ok

27
2017
05

OneinStack 更换php版本 nginx 502报错

shell 一键安装lnamp 环境 OneinStack,用的人也越来越多。

最近有个问题,分享下。

由于之前安装的是php 7.1 版本,7.1已经不支持mysql_connect()连接数据库,很多框架开始使用Mysqli。

OneinStack 切换php 版本:

  #history
  833  2017-05-27 09:19:01 root ./uninstall.sh php
  834  2017-05-27 09:19:11 root ./install.sh

找到文件,执行脚本,删除PHP

install 安装的时候只安装php就可以 其他的都可以N 不安装。

安装好之后reboot 重启服务器。


重启访问502 网关错误:

解决:

[root@iZ286290rd2Z /]# vim /usr/local/apache/conf/httpd.conf   #修改apache配置文件 这个是oneinstack默认安装路径

LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule php7_module        modules/libphp7.so   #注释 以前用过的版本
LoadModule php5_module        modules/libphp5.so

blob.png


[root@iZ286290rd2Z /]# service httpd restar

重启httpd服务

我这里是要安装oneThink mysql_connect() 通过

blob.png

31
2017
03

centos 7 添加80端口

[plain] view plain copy

  1. firewall-cmd --zone=public --add-port=80/tcp --permanent  



命令含义:

 

--zone #作用域

 

--add-port=80/tcp  #添加端口,格式为:端口/通讯协议

 

--permanent   #永久生效,没有此参数重启后失效



重启防火墙:


[plain] view plain copy

  1. systemctl stop firewalld.service  

  2. systemctl start firewalld.service  


28
2017
03

cron 计划任务每秒执行一次

[root@iZ2531r338hZ www]# crontab -e

* * * * * curl http://www.baidu.com
* * * * * sleep 3; curl http://www.baidu.com
* * * * * sleep 6; curl http://www.baidu.com
* * * * * sleep 9; curl http://www.baidu.com
* * * * * sleep 12; curl http://www.baidu.com 
* * * * * sleep 15; curl http://www.baidu.com 
* * * * * sleep 18; curl http://www.baidu.com 
* * * * * sleep 21; curl http://www.baidu.com 
* * * * * sleep 24; curl http://www.baidu.com 
* * * * * sleep 27; curl http://www.baidu.com 
* * * * * sleep 30; curl http://www.baidu.com 
* * * * * sleep 33; curl http://www.baidu.com 
* * * * * sleep 36; curl http://www.baidu.com 
* * * * * sleep 39; curl http://www.baidu.com 
* * * * * sleep 42; curl http://www.baidu.com 
* * * * * sleep 45; curl http://www.baidu.com 
* * * * * sleep 48; curl http://www.baidu.com 
* * * * * sleep 51; curl http://www.baidu.com 
* * * * * sleep 54; curl http://www.baidu.com 
* * * * * sleep 57; curl http://www.baidu.com


25
2017
03

Linux 查找批量替换字符串

#查找字符串
grep -R 'serach' /tmp 

#查找并替换字符串
sed -i "s/old/new/g" `grep old -rl /tmp`

#old 查找的字符串
#new 替换字符串
#/tmp  要替换的文件目录,也可以指向具体文件


22
2017
03

mount.nfs: access denied by server while mounting

报错:mount.nfs: access denied by server while mounting 

修改被挂载服务器配置文件

/tmp 10.44.11.155(rw)
/usemeall.com 10.171.83.150(insecure,rw,async,no_root_squash)

添加 

(insecure,rw,async,no_root_squash)

如果端口大于1024 rw 权限无法添加挂载

重启服务 挂载成功。

22
2017
03

nfs 启动报错

yum -y install nfs

[root@iZ25o0ipjpmZ /]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
                                                           [FAILED]
Starting NFS mountd: rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
                                                           [FAILED]
Starting NFS daemon: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)
rpc.nfsd: address family inet6 not supported by protocol TCP
rpc.nfsd: unable to set any sockets for nfsd
                                                           [FAILED]

解决:

[root@iZ25o0ipjpmZ /]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@iZ25o0ipjpmZ /]# /etc/init.d/rpcidmapd start
Starting RPC idmapd:                                       [  OK  ]
[root@iZ25o0ipjpmZ /]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd: rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
rpc.mountd: svc_tli_create: could not open connection for udp6
rpc.mountd: svc_tli_create: could not open connection for tcp6
                                                           [  OK  ]
Starting NFS daemon: rpc.nfsd: address family inet6 not supported by protocol TCP
                                                           [  OK  ]
[root@iZ25o0ipjpmZ /]#                                     [  OK  ]


RH系操作系统在6.0版本之后没有portmap服务控制rpc的启动,由于NFS和nfslock的启动需要向rpc进行注册,rpc不启动的话就会报错。
解决方法:启动rpcbind&rpcidmap rpcbind是6.0版本后默认的RPC服务,所以要先于nfs启动。如果不启动rpcidmap则会造成用户权限的映射错误,用户的权限看起来是一串数字。

14
2017
03

vsftp 安装使用

#查看服务是否安装
[root@iZ2531r338hZ 127.0.0.1]# service vsftpd start
vsftpd: unrecognized service

#安装服务
[root@iZ2531r338hZ 127.0.0.1]# yum install vsftpd
.....
#输入Y
Is this ok [y/N]: y
Downloading Packages:
vsftpd-2.2.2-21.el6.x86_64.rpm                                                                      | 155 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : vsftpd-2.2.2-21.el6.x86_64                                                                              1/1 
  Verifying  : vsftpd-2.2.2-21.el6.x86_64                                                                              1/1 

Installed:
  vsftpd.x86_64 0:2.2.2-21.el6                                                                                             

Complete!

#安装成功,启动服务。
[root@iZ2531r338hZ 127.0.0.1]# service vsftpd start
Starting vsftpd for vsftpd

#添加用户 -d 指定用户根目录
[root@iZ2531r338hZ 127.0.0.1]# useradd -d /www/ww1k/127.0.0.1/ test

#设置用户禁止SSH登陆  可以不设置
#[root@iZ2531r338hZ 127.0.0.1]# usermod -s /sbin/nologin test
#指定FTP目录 也可以在创建用户的同事指定目录
[root@iZ2531r338hZ 127.0.0.1]# usermod -d /data/test test

#编辑配置文件
vsftp目录 
[root@iZ2531r338hZ vsftpd]# cd /etc/vsftpd/
[root@iZ2531r338hZ vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@iZ2531r338hZ vsftpd]# ll
total 20
-rw------- 1 root root  125 May 11  2016 ftpusers
-rw------- 1 root root  361 Mar 14 11:38 user_list
-rw------- 1 root root 4595 Mar 14 11:35 vsftpd.conf
-rwxr--r-- 1 root root  338 May 11  2016 vsftpd_conf_migrate.sh
[root@iZ2531r338hZ vsftpd]# 

#修改配置文件
[root@iZ2531r338hZ vsftpd]# vim vsftpd.conf

#内容修改开启两个选项
#chroot_local_user=YES
chroot_list_enable=YES
# (default follows) 禁止用户ftp登陆列表
chroot_list_file=/etc/vsftpd/user_list
保存 重启vsftpd 服务
ok


07
2017
03

svn 远程主机强迫关闭了一个现有的连接

[root@iZ286290rd2Z /]# ps auxww | grep svn
root      8850  0.0  0.0 166316   824 ?        Ss   Jan22   0:00 svnserve -d -r /data/svn/
root     18937  0.0  0.0 110220   888 pts/1    S+   10:21   0:00 grep --color svn
[root@iZ286290rd2Z /]# kill
kill      killall   killall5  
[root@iZ286290rd2Z /]# kill 8850
[root@iZ286290rd2Z /]# ps auxww | grep svn
root     18973  0.0  0.0 110216   888 pts/1    S+   10:21   0:00 grep --color svn
[root@iZ286290rd2Z /]# svnserve -d -r /data/svn/
[root@iZ286290rd2Z /]# ps auxww | grep svn
root     18984  0.0  0.0 166320   684 ?        Ss   10:21   0:00 svnserve -d -r /data/svn/
root     18995  0.0  0.0 110216   888 pts/1    S+   10:21   0:00 grep --color svn
[root@iZ286290rd2Z /]#

处理过程。重启svn进程

03
2017
03

阿里云服务器挂载磁盘操作

在阿里云磁盘列表中挂载磁盘到服务器中

进入服务器

[root@iZ25o0ipjpmZ ~]# fdisk -l

Disk /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00078f9c

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1        5222    41940992   83  Linux

Disk /dev/xvdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

两块磁盘,自带的40G,和后来购买的100G磁盘。

分区,命令执行后输入n p 1 wq w 保存

[root@iZ25o0ipjpmZ ~]# fdisk /dev/xvdb 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x786bd9b9.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1): wq
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): 
Using default value 13054

Command (m for help): w
The partition table has been altered!

Calling ioctl()


格式化分区,如果是已经使用过的磁盘就不用格式化了,直接跳过这个步骤,挂载

[root@iZ25o0ipjpmZ ~]# mkfs.ext3 /dev/xvdb1 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214055 blocks
1310702 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


将挂载写入到分区引导中,重启的时候会自动挂载不需要手动mount

[root@iZ25o0ipjpmZ ~]# echo '/dev/xvdb1 /backup ext3 defaults 0 0' >> /etc/fstab

挂载

[root@iZ25o0ipjpmZ ~]# mount /dev/xvdb1 /backup/

作为备份使用挂载到 /backup 目录。

03
2017
03

rsync 解决内外网同步数据问题

这个项目是刚开始上班的时候遇见的,项目和广电合作,所以数据不能直接从外网进入到广电内部,必须用广电的服务器,广电内部服务器有两个网段

一个是外网网段,一个是内网网段,另外一个网段就是我们服务器阿里云外网。

网站数据要从阿里云上穿过外网网段进入内网网段,我们客户的数据都在阿里云上。

当时用的就是rsync做的增量备份。

当时是这么解决的。


1,部署rsync 以阿里服务为主  同步 模拟天津广电服务器

yum -y install xinetd  
yum -y install rsync*

 网上下载源码包也可以

iptables -A INPUT -p tcp --dport 873 -j ACCEPT
vi  /etc/xinetd.d/rsync #编辑xinetd 进程配置文件 允许开启 rsync
disable = no
chkconfig rsync on   #设置开机自启动


创建rsync 配置文件  

vi /etc/rsyncd.conf

#配置文件信息
uid = root                                  //运行RSYNC守护进程的用户
gid = root                                  //运行RSYNC守护进程的组
use chroot = no                 //不使用chroot
max connections = 4             // 最大连接数为4
strict modes =yes                //是否检查口令文件的权限
port = 873                      //默认端口873
          
[backup]                   //指定同步文件模块名称
path = /home/backup/        //镜像文件的路径
comment = This is a test       //这个模块的注释信息 
ignore errors                //可以忽略一些无关的IO错误
read only = yes              // 只读
list = no                   //不允许列文件
auth users = hening             //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file = /etc/rsync.pas           //密码和用户名对比表,密码文件自己生成
hosts allow = 115.29.48.231      //允许主机
hosts deny = 0.0.0.0/0                   //禁止主机
#transfer logging = yes

pid file = /var/run/rsyncd.pid      //pid文件的存放位置
lock file = /var/run/rsync.lock     //锁文件的存放位置
log file = /var/log/rsyncd.log      //日志记录文件的存放位置
服务器端 rsyncd.conf
uid = root                              
gid = root                                 
use chroot = no                
max connections = 4           
strict modes =yes                
port = 873   
hosts allow = 106.120.175.154                                 
list = no                  
pid file = /var/run/rsyncd.pid      
lock file = /var/run/rsync.lock    
log file = /var/log/rsyncd.log
[kuaijia]
path = /home/webroot/newkuaijia           
comment = rsync files  
ignore errors          
read only = yes 
list = no  
auth users = rsync
secrets file = /etc/rsync.pas

_______________________________________________________________________________

手动创建密码文件

touch /etc/rsync.pas
root:password #服务器端密码文件

修改文件权限

chown root:root rsync.pas 
chmod 600 rsync.pas     #设置权限
vi /etc/rsyncd.motd     #配置欢迎信息文件


启动xinetd 服务

service xinetd restart


启动 rsync 服务

之前有启动程序 先kill

/usr/bin/rsync --daemon 后台启动   

或者 /etc/rc.d/init.d/xinetd reload 重新加载xinetd 超级进程启动

查看 rsync是否启动

/etc/init.d/xinetd reload
lsof -i:873 #查看进程id
netstat -a | grep rsync


/etc/rsync.pas 为密码配置文件 客户端密码文件只需要写密码就好

chmod 600 rsync.pas   #设置权限,密码正确也无法登陆

最后一部 连接服务器

向server 获取文件

/usr/bin/rsync -vzrtopg --progress --delete hening@192.168.0.217::backup /home/backup --password-file=/etc/rsync.pas


客户端上执行脚本命令:

/usr/bin/rsync -vzrtopg --delete --update  --progress rsync@115.29.48.231::kuaijia /test --password-file=/etc/rsync.pas


--update 增量备份

--progress 显示备份过程


脚本自动化执行部分

手动部分启动服务

/usr/bin/rsync --daemon    #启动rsync 
/etc/init.d/xinetd restart  #重新启动xinetd 守护进程 重新加载也可以

手动关闭rsync 进程

 

shell 路径

/usr/sh/rsync.sh  备份路径可以手动执行

rsync.sh

#!/bin/bash
/usr/bin/rsync -vzrtopg --delete --update  --progress rsync@115.29.48.231::kuaijia /var/www/html --password-file=/etc/rsync.pas >> /var/log/rsync_backup.log
date >> /var/log/rsync_backup.log
chown -R root:root /var/www/html
chmod -R 777 /var/www/html


/usr/sh/stop_rsync.sh  停止自动备份

启动自动备份

/etc/init.d/crond start

chkconfig crond on    开机自启动

service crond start 

crontab -l

crontab -e

*/5 * * * * /usr/sh/rsync.sh >> /var/log/rsync_backup.log

5分钟执行一次 追加日志文件


2,修改阿里数据库用户表  标识用户所属地区


======================================================================

3,数据库同步问题

阿里云服务器导出数据 new_kuaijia阿里云限制 这边虚拟天津服务器 不能直接mysqldump

脚本路径 /usr/sh/kuaijia_mysqldump.sh

客户端服务器 rsync 同步文件   mysql_backup 模块

客户端脚本路径

/usr/sh/mysql_down.sh

客户端导入数据库脚本

/usr/sh/mysql.sh

set names utf8;

解决乱码问题



4,天津广电 电视端操作,同时插入两个数据库


03
2017
03

Linux convert 图片处理,convert , Linux图片处理压缩转换

[收藏]

convert命令可以用来转换图像的格式,支持JPG, BMP, PCX, GIF, PNG, TIFF, XPMXWD等类型,下面举几个例子
  convert  xxx.jpg  xxx.png  
jpeg转成png文件 
  convert  xxx.gif   xxx.bmp 
gif转换成bmp图像 
  convert  xxx.tiff    xxx.pcx  
tiff转换成pcx图像 
还可以改变图像的大小
  convert -resize 1024x768  xxx.jpg   xxx1.jpg   
将图像的像素改为1024*768,注意1024768之间是小写字母
  convert -sample 50%x50%  xxx.jpg  xxx1.jpg  
将图像的缩减为原来的50%*50% 
旋转图像: 
convert -rotate 270 sky.jpg sky-final.jpg     
将图像顺时针旋转270 
使用-draw选项还可以在图像里面添加文字: 
convert -fill black -pointsize 60 -font helvetica -draw 'text 10,80 "Hello, World!" ‘  hello.jpg  helloworld.jpg 
在图像的10,80 位置采用60磅的全黑Helvetica字体写上 Hello, World! 
convert
还有其他很多有趣和强大的功能,大家不妨可以试试。 

几个简单的应用。 
  1、批量图像格式转换 
  如果想将某目录下的所有jpg文件转换为png文件,只要在命令行模式下输入
  for %f in (*.jpg) do convert “%f” “%~nf.png” 
  2、对所有图像进行同一操作 
  譬如,批量生成某目录下所有PNG图像文件的缩略图(大小为80×40): 
  for %f in (*.png) do convert “%f” -sample 80×40 “%~nf_sample.png” 
  类似的,将某目录下所有PNG图像旋转90度的操作为: 
  for %f in (*.png) do convert “%f” -rotate 90 “%~nf_rotate.png” 
  还可以进行批量裁剪、淡化、抖动、炭化、加边框、圆角等等一系列操作,具体可参考: linux/l-graf/index.html">http://www.ibm.com/developerworks/cn/linux/l-graf/index.html 
  http://linux.chinaunix.net/docs/2006-12-15/3481.shtml 
  3、在图像上加上文字说明 
  如果你有大量图片需要发布,在所有图片上加上版权说明是很明智的做法。用ImgeMagick可以很容易的实现: 
  convert 1.png -fill white -pointsize 13 -draw “text 10,15 ‘lifesinger 2006” 2.png 
  可以用-font指定字体,这时需要安装Ghostscript支持: http://www.cs.wisc.edu/~ghost/ 
  还可以用composite命令在所有图片上加上水印,有兴趣的看这里
  http://www.imagemagick.org/script/composite.php 

  —————————————————————————————————————————– 

     convert 
  转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。 
  identify 
  描述一个或较多图像文件的格式和特性。 
  mogrify 
  按规定尺寸制作一个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像文件然后写到一个不同的图像文件。 
  composite 
  根据一个图片或多个图片组合生成图片。 
  montage 
  创建一些分开的要素图像。在含有要素图像任意的装饰图片,如边框、结构、图片名称等。 
  compare 
  在算术上和视觉上评估不同的图片及其它的改造图片。 
  display 
  如果你拥有一个X server的系统,它可以按次序的显示图片 
  animate 
  利用X server显示动画图片 
  import 
  在X server或任何可见的窗口上输出图片文件。 你可以捕获单一窗口,整个的荧屏或任何荧屏的矩形部分。 
  conjure 
  解释执行 MSL (Magick Scripting Language) 写的脚本。 
  convert -sample 100×20 input.jpg output.jpg 
  上述命令生成一个100×20的缩略图 
  更好的方法是用等比例缩放,像这样,统一生成14的缩略图 
  convert -sample 25%x25% input.jpg output.jpg 
  如果写成脚本,就是像这个样子 
  for img in `ls *.jpg` 
  do 
  convert -sample 25%x25% ${img} thm${img} 
  done 
  加注图片 
  convert -font fonts/font.ttf -stroke color -fill color -pointsize size 
  -draw ‘text 10,10 “String”‘ input.jpg output.jpg 
  -font 指定字体,因为这样我加注文字, 
  -stroke 描边用的颜色, 
  -fill 填充用的颜色,这里用none就可以画出空心字了, 
  -pointsize 加注字体大小,像素数, 
  -draw 是用来画,这里是文字,下面的位置1010 是以图片左上角为原点坐标的 
  向图像添加文本注释 
  有时您需要向图像添加文本注释。例如,假设您的公司拥有标准的名片图像,并希望在将名片发送到打印机之前将每个雇员的详细信息都添加到名片上面。另一个示例是为通过您网站上的在线课程的用户生成表示证书(presentation certificate)。 
  您可以使用下列命令行,为该图注释一些标识信息: 
  convert -font helvetica -fill white -pointsize 36 
  -draw ‘text 10,50 “Floriade 2002, Canberra, Australia”’ 
  floriade.jpg comment.jpg 
  迄今为止,这是我在本文中所展示的最复杂的 convert 命令行了,因此我将花些时间来解释它。 
  -font helvetica 将注释的字体设置为 Helvetica。也可以在此处指定字体文件的路径。这个示例给图像添加了标记,这样未经许可其它网站就不能再使用该图像了,但它是使用位于非标准位置的字体来完成该任务的: 
  convert -font fonts/1900805.ttf -fill white -pointsize 36 
  -draw ‘text 10,475 “stillhq.com”’ 
  floriade.jpg stillhq.jpg 
  -fill white 用白色而不是标准的黑色来填充字母。 
  -pointsize 36 以点为单位指定字母的大小。一英寸等于 72 点。 
  -draw ‘text 10,50 “…”’ 是一组绘图命令,在本例中是移动到位置 10, 50,然后绘制出双引号中的文本。使用单引号是因为如果需要绘制多个字,则绘图命令中需要使用双引号,而您不能在双引号中再用双引号。 
  在一次 ImageMagick 调用中执行多条命令 
  您已经看到了将命令与注释示例联系起来的示例。但是,可以将本文中提到的任意 ImageMagick 命令链接起来。例如,也许我们希望制作某图像的缩略图,然后对它应用发散。在发散发生之后,我们将应用炭笔效果: 
  convert -sample 25%x25% -spread 4 
  -charcoal 4 input.jpg output.jpg 
  用convert给图片加边框 
  convert -raise 5×5 input.jpg output.jpg 
  convert +raise 5×5 input.jpg output.jpg 
  以上命令分别用-,+边缘颜色的来达到处理边缘的效果! 
  convert -bordercolor red -border 5×5 input.jpg output.jpg 
  简单的加上5个像素宽的红边! 
  convertconvert顾名思义就是对图像进行转化,它主要用来对图像进行格式的转化,同时还可以做缩放、剪切、模糊、反转等操作。 
  格式转化比如把 foo.jpg 转化为 foo.png 
  convert foo.jpg foo.png如果要想把目录下所有的jpg文件都转化为gif,我们可借助于shell的强大功能: 
  find ./ -name "*.jpg" -exec convert {} {}.gif ;转化后的gif名称为 *.jpg.gif ,这样看起来不太自然,没关系,我们可以再来一步: 
  rename .jpg.gif .gif *.jpg.gif本来,我想在find的时候,用basename来取得不带后缀的文件名的,这样就不会形成.jpg.gif这种丑陋的名子了,可是不知道为什么,就是不行,如果你知道的话,告诉我或者,你也可用shell script来完成上述的操作: 
  for i in *.jpg 
  do 
  convert $i `basename $i .jpg`.gif 
  done我们还可用mogrify来完成同样的效果: 
  mogrify -format png *.jpg上面命令将会把目录下面所有的jpg文件转化为png格式。convert还可以把多张照片转化成pdf格式: 

  convert *.jpg foo.pdf大小缩放比如我们要为一个普通大小的图片做一个缩略图,我们可以这样 

  convert -resize 100x100 foo.jpg thumbnail.jpg你也可以用百分比,这样显的更为直观: 

  convert -resize 50%x50% foo.jpg thumbnail.jpgconvert会自动地考虑在缩放图像大小时图像的高宽的比例,也就是说着新的图像的高宽比与原图相同。我们还可以批量生成缩略图: 
  mogrify -sample 80x60 *.jpg注意,这个命令会覆盖原来的图片,不过你可以在操作前,先把你的图片备份一下。 
  加边框在一张照片的四周加上边框,可以用 -mattecolor 参数,比如某位同志牺牲了,我们需要为他做一张黑边框的遗像,可以这样: 
  convert -mattecolor "#000000" -frame 60x60 yourname.jpg rememberyou.png其中,”#000000″是边框的颜色,边框的大小为60×60你也可以这样加边框
  convert -border 60x60 -bordercolor "#000000" yourname.jpg rememberyou.png在图片上加文字 
  convert -fill green -pointsize 40 -draw 'text 10,50 "charry.org"' foo.png bar.png上面的命令在距离图片的左上角10×50的位置,用绿色的字写下charry.org,如果你要指定别的字体,可以用-font参数。 
  模糊高斯模糊
  convert -blur 80 foo.jpg foo.png-blur参数还可以这样-blur 80×5。后面的那个5表示的是Sigma的值,这个是图像术语,我也不太清楚,总之,它的值对模糊的效果起关键的作用。 

  翻转上下翻转: 

  convert -flip foo.png bar.png左右翻转: 

  convert -flop foo.png bar.png反色形成底片的样子: 

  convert -negate foo.png bar.png单色把图片变为黑白颜色: 

  convert -monochrome foo.png bar.png加噪声 

  convert -noise 3 foo.png bar.png油画效果我们可用这个功能,把一张普通的图片,变成一张油画,效果非常的逼真 

  convert -paint 4 foo.png bar.png旋转把一张图片,旋转一定的角度: 

  convert -rotate 30 foo.png bar.png上面的30,表示向右旋转30度,如果要向左旋转,度数就是负数。 

  炭笔效果 

  convert -charcoal 2 foo.png bar.png形成炭笔或者说是铅笔画的效果。 

  散射毛玻璃效果: 

  convert -spread 30 foo.png bar.png漩涡以图片的中心作为参照,把图片扭转,形成漩涡的效果: 

  convert -swirl 67 foo.png bar.png凸起效果用-raise来创建凸边: 

  convert -raise 5x5 foo.png bar.png执行后,你会看到,照片的四周会一个5×5的边,如果你要一个凹下去的边,把-raise改为+raise就可以了。其实凸边和凹边看起来区别并不是很大。 

  其他其他功能都是不太常用的,如果你感兴趣的话,可以看它的联机文档 

  importimport是一个用于屏幕截图的组件,下面列出的是我们常用的功能,其他的功能,你参考它的man好了。 

  截取屏幕的任一矩形区域 

  import foo.png在输入上述的命令后,你的鼠标会变成一个十字,这个时候,你只要在想要截取的地方划一个矩形就可以了 

  截取程序的窗口 

  import -pause 3 -frame foo.png回车后,用鼠标在你想截的窗口上点一下即可。参数-frame的作用是告诉import,截图的时候把目标窗口的外框架带上,参数 -pause的作用很重要,你可以试着把它去掉,对比一下,你会发现,目标窗口的标题栏是灰色的,pause就是让import稍微延迟一下,等你的目标窗口获得焦点了,才开始截图,这样的图才比较自然。 

  截取一个倾斜的窗口如果想让你的截图比较cool,你可以把截取一个倾斜的窗口,方法如下: 

  import -rotate 30 -pause 3 -frame foo.png截取整个屏幕 

  import -pause 3 -window root screen.png注意,暂停了3秒钟,你需要在3秒钟内切换到需要截取的画面噢。 

  displaydisplay应该是我们使用的最为频繁的图像处理软件了,毕竟,还是看的多 

  显示图片 

  display foo.png如果你要显示多个文件,你可以使用通配符 

  display *.png幻灯片 

  display -delay 5 *每隔5个百分之秒显示一张图片 

  一些快捷键 

  space(空格): 显示下一张图片 

  backspace(回删键):显示上一张图片 

  h: 水平翻转 

  v: 垂直翻转 

  /:顺时针旋转90 

  :逆时针旋转90 

  >: 放大 

  <: 缩小 

  F7:模糊图片 

  Alt+s:把图片中间的像素旋转 

  Ctrl+s:图象另存 

  Ctrl+d:删除图片 


03
2017
03

Apache 启用GZIP 压缩网页大小

鸟哥的Linux 以前一直很喜欢看他的论坛,从中也得益了很多的知识,本篇文章来自于他的博客,其中鸟哥已经很清楚的介绍了

什么叫GZIP 以及HTTP压缩的过程

博客地址可以去看下:http://blog.chinaunix.net/uid-25266990-id-3479069.html

 

开启Gzip

[root@iZ286290rd2Z imylive]# vim /etc/httpd/conf/httpd.conf

#添加支持模块

LoadModule deflate_module modules/mod_deflate.so 

 

添加完成之后可以在PHPinfo中看见gzip enable

介于Apache版本问题 1. 2.0以后的内建压缩技术差异

1.0    使用 mod_gzip

2.0    deflate_Module

 

#http.conf文件中添加

# mod_gzip  Apache 1.0
<ifmodule mod_gzip.c style="word-wrap: break-word;"></ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

 

#2.0 严格文件匹配类型

# mod_deflate:
<ifmodule mod_deflate.c style="word-wrap: break-word;"></ifmodule mod_deflate.c>
DeflateCompressionLevel 6 #压缩率, 6是建议值.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/php
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/gif image/png  image/jpe image/swf image/jpeg image/bmp
# Don’t compress images and other  #排除不需要压缩的文件
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch MSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-varySetEnvIfNoCase 
#SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary

 

添加完成之后可以在浏览器上监听请求


03
2017
03

sendmail 配置OK 发送邮件慢

网站sendmail已经配置好,邮件正常接收,sendmail响应时间 和发送邮件的速度不敢恭维。

查看主机名>>修改host文件 主机指向 127.0.0.1>>重启服务器或者重启网卡就可以了

[root@test ~]# hostname
test
You have new mail in /var/spool/mail/root
[root@test ~]# cat /etc/hosts
127.0.0.1 localhost
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 test
[root@test ~]#

 

另外附带下yum安装的sendmail 队列目录发邮件的时候可以去监听下

/var/spool/mqueue   sendmail 队列

 

tail -f /var/spool/mail/root       就可以看见发送邮件的内容了。