Monthly Archives: 11月 2016

11月 30th, 2016

CDN是一种组合技术,主要包含以下3个方面:
① 源站
源站指发布内容的原始站点。添加、删除和更改网站的文件,都是在源站上进行的;另外缓存服务器所抓取的对象也全部来自于源站。
② 缓存服务器
缓存服务器是直接提供给用户访问的站点资源,有一台或数台服务器组成;当用户发起访问时,他的访问请求被智能DNS定位到离他较近的缓存服务器。如果用户所请求的内容刚好在缓存里面,则直接把内容返还给用户;如果访问所需的内容没有被缓存,则缓存服务器向邻近的缓存服务器或直接向源站抓取内容,然后再返还给用户。
③ 智能DNS
智能DNS是整个CDN技术的核心,它主要根据用户的来源,将其访问请求指向离用户比较近的缓存服务器,如把广州电信的用户请求指向到广州电信IDC机房中的缓存服务器。通过智能DNS解析,让用户访问同服务商下的服务器,消除国内南北网络互相访问慢的问题,达到加速作用。智能DNS的出现,颠复了传统的一个域名对应一个镜像的做法,让用户更加便捷的去访问网站。

缓存服务器中有访问内容:
客户端请求 ==> 智能DNS解析到最近的缓存服务器 ==> 缓存服务器返回请求资源
缓存服务器中无访问内容:
客户端请求 ==> 智能DNS解析到最近的缓存服务器 ==> 缓存服务器发现没有客户端请求资源,向源站请求 ==> 源站返回资源到缓存服务器 ==> 缓存服务器返回客户端请求资源

11月 30th, 2016
  1. 在master端执行:
    mysql> flush logs;
    mysql> show master status;
    PS:记下File、Position的值。
  2. 在slave端执行:
    mysql> stop slave;
    mysql> CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002',MASTER_LOG_POS=107;
    mysql> start slave;
    mysql> show slave status

sql命令手动同步,还有一种方法是跳过这个导致错误的事物

  1. 跳过指定数量的事务:
    mysql>slave stop;
    mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务
    mysql>slave start
  2. 修改mysql的配置文件,通过slave_skip_errors参数来跳所有错误或指定类型的错误
    vi /etc/my.cnf
    [mysqld]
    slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误
    slave-skip-errors=all #跳过所有错误
11月 30th, 2016

当一个网站访问慢时, 你都是怎么去查找问题,和解决问题以达到优化效果的

第一,用5分钟排除网络因素,借助工具(如pagespeed)分析页面加载过程
1. 某个元素或者图片加载过慢: 具体原因具体分析
2. DNS解析时长问题: 可以通过购买解析服务, 来让自己的域名在各地DNS更多缓存
3. 网络带宽瓶颈: 考虑增加带宽
4. 网络线路波动: 考虑CDN,或者镜像站
第二,要考虑到服务器问题
1. 是否有服务器过载: 考虑增加硬件
2. I/O操作:数据库的频繁读写,服务器的频繁请求(包括静态文件的读取,图片的读取)等都属于I/O问题。对于数据库的问题,首先要优化SQL,存储过程等。如果单表数据量过大要考虑做分割或者运用程序来控制分表。如果请求量过大,要考虑做集群。对于服务器(静态)文件的I/O问题,则可以考虑做CDN,这样也可以解决地域性问题。对于动态文件的访问,则涉及到代码优化及负载均衡两项。
3. 具体应用优化: nginx针对访问量修改配置文件,调高Buffers 调低keep alive空连接时间等
第三,安全方面
1. 查看web\mail等其它服务日志,是否存在被攻击现象: 针对安全方面加固
2. 是否有其它攻击存在DDOS,WEB CC等

 

 

文章来源网络博客,原文地址:http://www.centoscn.com/IT/2015/1208/6495.html

11月 30th, 2016
yum install lm_sensors     ;CPU温度监控

yum install hddtemp         ;硬盘

当前cpu温度可以执行sensors显示

硬盘温度通过命令hddtemp /dev/设备名  显示即可。

11月 30th, 2016

官方教程:http://manual-cn.seafile.com/

安装环境
安装干净的 CentOS 7 64位 系统并切换成 root 账号

1.获取 Seafile 安装脚本
这里的安装脚本可以帮助您快速的安装好 Seafile 服务器,并配置好 MariaDB, Memcached, WebDAV, Ngnix 和开机自动启动脚本。注意,安装脚本会创建 seafile 系统用户,并以该用户来运行 Seafile 服务。版本升级时需要使用该用户来执行升级步骤,以保证文件权限的正确性。具体见本文末尾。
# wget https://raw.githubusercontent.com/haiwen/seafile-server-installer-cn/master/seafile-server-centos-7-amd64-http
# bash seafile-server-installer-cn/master/seafile-server-centos-7-amd64-http 5.1.3

2.部署和目录设计
假设你公司的名称为 haiwen, 你也已经下载 seafile-server_1.4.0_* 到你的 home
目录下。 我们建议这样的目录结构:
# mkdir haiwen
# mv seafile-server_* haiwen
# cd haiwen
将 seafile-server_* 移动到 haiwen 目录下后
# tar -xzf seafile-server_*
# mkdir installed
# mv seafile-server_* installed

现在,你的目录看起来应该像这样:
# tree haiwen -L 2
haiwen
├── installed
│ └── seafile-server_1.8.2_x86-64.tar.gz
└──
seafile-server-1.8.2
├── reset-admin.sh
├── runtime
├── seafile
├── seafile.sh
├── seahub
├── seahub.sh
├── setup-seafile.sh
└──
upgrade

这样设计目录的好处在于
和 seafile 相关的配置文件都可以放在 haiwen 目录下,便于集中管理.
后续升级时,你只需要解压最新的安装包到 haiwen 目录下.

3.安装mysql

4.安装 Seafile 服务器
安装前的准备工作
安装 Seafile 服务器之前,请确认已安装以下软件
python 2.7 (从 Seafile 5.1 开始,python 版本最低要求为2.7)
python-setuptools
python-imaging
python-mysqldb
python-ldap
python-urllib3
python-memcache (或者 python-memcached)

在 CentOS 7 下
# yum install python-setuptools python-imaging python-ldap MySQL-python python-memcached python-urllib3
安装
# cd seafile-server-*
# ./setup-seafile-mysql.sh #运行安装脚本并回答预设问题
如果你的系统中没有安装上面的某个软件,那么 Seafile初始化脚本会提醒你安装相
应的软件包.
该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数:

部署 Seafile 服务器
参数 作用 说明
seafile server name seafile 服务器的名字,目前该配置已经不再使用
3 ~ 15 个字符,可以用英文字母,数字,下划线
seafile server ip or domain seafile 服务器的 IP 地址或者 域名
客户端将通过这个 IP 或者地址来访问你的 Seafile 服务 seafile data dir seafile 数据存放的目录,用上面的例子,默认将是/data/haiwen/seafile-data  seafile 数据将随着使用而逐渐增加,请把它放在一个有足够大空闲空间的分区上
seafile fileserver port seafile fileserver 使用的 TCP 端口,该端口用于文件同步,请使用默认的 8082,不能更改。

在这里, 你会被要求选择一种创建 Seafile 数据库的方式:
——————————————————-
Please choose a way to initialize seafile databases:
——————————————————-
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
如果选择 1 , 你需要提供根密码. 脚本程序会创建数据库和用户。
如果选择 2 , ccnet/seafile/seahub 数据库应该已经被你( 或者其他人) 提前创建。
如果安装正确完成,你会看到下面这样的输出 (新版本可能会有所不同)

5.启动 Seafile 服务器
启动 Seafile 服务器和 Seahub 网站
在 seafile-server-1.8.2 目录下,运行如下命令启动 Seafile:
# ./seafile.sh start # 启动 Seafile 服务
启动 Seahub
# ./seahub.sh start <port> # 启动 Seahub 网站 ( 默认运行在8000端口上)
小贴士: 你第一次启动 seahub 时, seahub.sh 脚本会提示你创建一个 seafile 管理员帐号。
服务启动后, 打开浏览器并输入以下地址
http://192.168.1.111:8000/
你会被重定向到登陆页面. 输入管理员用户名和密码即可。
恭喜! 现在你已经成功的安装了 Seafile 服务器.
在另一端口上运行 Seahub
如果你不想在默认的 8000 端口上运行 Seahub, 而是想自定义端口( 比如8001) 中运行,请按以下步骤操作:
关闭 Seafile 服务器
# ./seahub.sh stop # 停止 Seafile 进程
# ./seafile.sh stop # 停止 Seahub
更改 haiwen/conf/ccnet.conf 文件中 SERVICE_URL 的值(假设你的 ip 或者域名时 192.168.1.100 ), 如下 (从 5.0 版本开始,可以直接在管理员界面中设置。注意,如果同时在 Web 界面和配置文件中设置了这个值,以 Web 界面的配置为准。):
# SERVICE_URL = http://192.168.1.100:8001
重启 Seafile 服务器
# ./seafile.sh start # 启动 Seafile 服务
# ./seahub.sh start 8001 # 启动 Seahub 网站 ( 运行在8001端口上)
关闭/重启 Seafile 和 Seahub
关闭
# ./seahub.sh stop # 停止 Seahub
# ./seafile.sh stop # 停止 Seafile 进程
重启
# ./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
# ./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动Seahub
如果停止/重启的脚本运行失败大多数情况下 seafile.sh seahub.sh 脚本可以正常工作。如果遇到问题:
使用pgrep命令检查 seafile/seahub 进程是否还在运行中
# pgrep -f seafile-controller # 查看 Seafile 进程
# pgrep -f “seahub” # 查看 Seahub 进程
使用pkill命令杀掉相关进程
# pkill -f seafile-controller # 结束 Seafile 进程
# pkill -f “seahub” # 结束 Seafile 进程
OK!

11月 30th, 2016
一般系统的组成由:核心,shell(命令解释器),应用程序

linux也一样,linux的核心(2.6.9.18),shell(/bin/bash),应用程序(Xwindow)等
或是:
Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。

1.进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。
可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用
了比较简单的基于优先级的进程调度算法选择新的进程。

2.内存管理(MM)允许多个进程安全的共享主内存区域。Linux 的内存管理支持虚拟内存,即在计算机中运行的程
序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的
程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和
硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。

3.虚拟文件系统(Virtual File System,VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS
提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所
支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

4.网络接口(NET)提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。
网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备
都有相应的设备驱动程序。

5.进程间通讯(IPC) 支持进程间各种通信机制。
11月 30th, 2016

一、安装 VNC
默认情况下,CentOS 6.4 是没有安装的。
检查是否安装,输入:
[root@localhost ~]# rpm -q vnc vnc-server
得到:
package vnc is not installed
提示没有安装,那么就开始安装,输入:
[root@localhost ~]# yum install vnc vnc-server

二、设置 VNC 密码
安装完成后 需初启动VNC 否则执行第一步 Centos 依然会报未安装VNC
[root@localhost ~]$ vncserver
设置 VNC密码,输入:(在某用户下输入则登陆用户就是它,如果su imiss切换到imiss用户,输入vncserver则启动的是另一个桌面,同样要设置密码,以后在该账户下启动的vncserver登陆就需要在此用户下设置的密码了。)
此时会提示你输入密码,因为是第一次配置。重复输入两次即可。
[root@localhost ~]$ vncpasswd
Password:
Verify:
三、配置桌面类型
   [root@localhost ~]$vi  ~/.vnc/xstartup
一般情况下,我们使用的 Linux 桌面都是 “Gnome” 桌面,故配置成这个桌面比较习惯。
按 “i” 键进入编辑状态,主要修改最后两行。改为:
# xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
# twm &
gnome-session &
  重点编辑最后两行,将这两行注释去掉,得到:

四、配置登录帐号、桌面分辨率、连接方式
输入:
[root@localhost ~]# vi /etc/sysconfig/vncservers

修改最后两行
VNCSERVERS=”1:root”
VNCSERVERARGS[1]=”-geometry 1024×768″
五、配置防火墙,允许 VNC 连接
VNC server 监听的端口从 5900 开始,display:1 的监听 5901,display:2 监听 5902,以此类推。CentOS 的防火墙缺省是不允许连接这些端口的,所以需要使用下面的步骤打开防火墙(需要 root 权限):
输入编辑:
[root@localhost ~]# vi /etc/sysconfig/iptables
上面我们只添加了一个 root 帐号和桌面 1,所以这里按照上面的规则,添加一个 “5901” 端口号即可。
-A INPUT -m state –state NEW -m tcp -p tcp –dport 5901 -j ACCEPT
六、重启防火墙
service iptables restart
七、设置 VNC 自动启动
[root@localhost ~]# chkconfig vncserver on
八、关闭
vncserver -kill :1(注意kill后面要有一个空格)
安装成功
service vncserver start
11月 30th, 2016

在执行telnet时会提示命令不存在,此时输入命令 rpm -qa telnet-server ,若无输出内容,则表示没有安装。

 

方法1.在线安装

分别执行如下两个命令:

yum install telnet

yum install telnet-server

 

方法2.rpm包安装

下载对应的rpm包:

下载地址   http://vault.centos.org/6.3/os/x86_64/Packages/ 6.3表示系统版本号

telnet-server-0.17-48.el6.x86_64.rpm

telnet-0.17-48.el6.x86_64.rpm

然后执行如下命令:

rpm -ivh telnet-0.17-48.el6.x86_64.rpm

rpm -ivh telnet-server-0.17-48.el6.x86_64.rpm

 

在执行 rpm -ivh telnet-server-0.17-48.el6.x86_64.rpm 命令时 ,可能会遇到如下警告:

warning: telnet-server-0.17-48.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
xinetd is needed by telnet-server-1:0.17-48.el6.x86_64

 

解决方式就是   先安装xinetd包(下载地址如上)

执行如下命令:

rpm -ivh xinetd-2.3.14-39.el6_4.x86_64.rpm

安装成功后再安装telnet-server

然后启动 xinetd:

service xinetd start

至此安装完成。
11月 30th, 2016

Ubuntu 上使用apt-get安装JDK

1.查看apt库都有哪些jdk版本

root@Itble:~# apt-cache search java|grep jdk
default-jdk – Standard Java or Java compatible Development Kit
default-jdk-doc – Standard Java or Java compatible Development Kit (documentation)
gcj-4.6-jdk – gcj and classpath development tools for Java(TM)
gcj-jdk – gcj and classpath development tools for Java(TM)
openjdk-6-dbg – Java runtime based on OpenJDK (debugging symbols)
openjdk-6-demo – Java runtime based on OpenJDK (demos and examples)
openjdk-6-doc – OpenJDK Development Kit (JDK) documentation
openjdk-6-jdk – OpenJDK Development Kit (JDK)
openjdk-6-jre-lib – OpenJDK Java runtime (architecture independent libraries)
openjdk-6-source – OpenJDK Development Kit (JDK) source files
openjdk-7-dbg – Java runtime based on OpenJDK (debugging symbols)
openjdk-7-demo – Java runtime based on OpenJDK (demos and examples)
openjdk-7-doc – OpenJDK Development Kit (JDK) documentation
openjdk-7-jdk – OpenJDK Development Kit (JDK)
openjdk-7-source – OpenJDK Development Kit (JDK) source files
uwsgi-plugin-jvm-openjdk-6 – Java plugin for uWSGI (OpenJDK 6)
uwsgi-plugin-jwsgi-openjdk-6 – JWSGI plugin for uWSGI (OpenJDK 6)
openjdk-6-jre – OpenJDK Java runtime, using Hotspot JIT
openjdk-6-jre-headless – OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-7-jre – OpenJDK Java runtime, using Hotspot JIT
openjdk-7-jre-headless – OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-7-jre-lib – OpenJDK Java runtime (architecture independent libraries)

2.选择版本进行安装

root@Itble:~# apt-get install openjdk-7-jdk

3.设置环境变量

root@Itble:~# vi /etc/profile

添加如下内容:

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

让修改生效:

root@Itble:~# source /etc/profile

4.验证

root@Itble:~# java -version
java version “1.7.0_79”
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

11月 30th, 2016

yum安装JDK(CentOS)

1.查看yum库中都有哪些jdk版本

[root@localhost ~]# yum search java|grep jdk
ldapjdk-javadoc.x86_64 : Javadoc for ldapjdk
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
ldapjdk.x86_64 : The Mozilla LDAP Java SDK

2.选择版本,进行安装

我们这里安装1.7版本

[root@localhost ~]# yum install java-1.7.0-openjdk

安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64

3.设置环境变量

[root@localhost ~]# vi /etc/profile

添加如下内容:

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

让修改生效:

[root@localhost java]# source /etc/profile

3.验证
[root@localhost java]# java -version
java version “1.7.0_79”
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

 

 

 

注:因为采用yum安装jdk,系统考虑到多版本的问题,会用alternatives进行版本控制。开始,相应版本的jdk安装在/usr/lib/jvm/之后,会在alternatives中注册,在/etc/alternatives目录下会产生一些链接到/usr/lib/jvm/中刚安装好的jdk版本。

在/usr/bin下面会有链接到/etc/alternatives的相应的文件。比如,/usr/bin下面会有一个链接文件java的映射关系如下:

/usr/bin/java->/etc/alternatives/java
/etc/alternatives/java-> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

这样,java命令不用设置环境变量,就可以正常运行了。但如果对于tomcat或其他软件来说还是要设置环境变量。

同样,如果安装新的版本jdk,就会重新链接到最新安装的jdk版本。当然,也可以使用alternatives修改所要使用的版本。