分类目录归档:软件

软件

Centos 下实时查看网卡流量的工具 – nload

nload 的官方网站为: http://www.roland-riegel.de/nload/

在 CentOS 下,nload 目前就只能基于源代码进行编译安装了。默认安装的 CentOS ,要编译安装 nload 时,可能还需要安装几个需要的软件包:gcc 、gcc-c++ 和 ncurses-devel

yum install gcc gcc-c++ ncurses-devel
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
tar xvf nload-0.7.4.tar.gz
cd nload-0.7.4
./configure
make
make install

完成后,nload 被安装在了 /usr/local/bin/nload 。

用图形方式查看实时流量:
nload -t 200 -i 1024 -o 128 -u H

查看第一网卡的流量情况,显示的是实时的流量图
nload eth0

同时查看多个网卡的流量情况。
nload -m

效果是这样的:
nload

参数说明:
Options:
-a period Sets the length in seconds of the time window for average calculation. Default is 300.
-a period 设置在时间窗口平均计算秒的长度。默认值是300。

-i max_scaling Specifies the 100% mark in kBit/s of the graph indicating the incoming bandwidth usage. Ignored if max_scaling is 0 or the switch -m is given. Default is 10240.
-i max_scaling 指定了100%标记在图中的kbit / s的指示传入的带宽使用率。如果max_scaling为0或开关-m时给予忽略。默认值是10240。

-m Show multiple devices at a time; no traffic graphs.
-m 显示多个设备同时使用;没有流量图。

-o max_scaling Same as -i but for the graph indicating the outgoing bandwidth usage. Default is 10240.
-o max_scaling 相同的AS-I,但对于曲线图,显示出带宽使用。默认值是10240。

-t interval Determines the refresh interval of the display in milliseconds. Default is 500.
-t interval 确定以毫秒为单位显示的刷新间隔。默认值是500。

-u h|b|k|m|g Sets the type of unit used for the display of traffic numbers.
-u h|b|k|m|g 设置用于流量数字的显示单元的类型。
H|B|K|M|G h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc. H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc. Default is h.
-U h|b|k|m|g Same as -u, but for a total amount of data (without “/s”).

-U h|b|k|m|g 同-U,但是对于数据的总量(没有“/秒”)。
H|B|K|M|G Default is H.

devices Network devices to use. Default is to use all auto-detected devices.
devices 网络设备使用。默认值是使用所有自动检测到的设备。

例子: nload -t 200 -i 1024 -o 128 -U M

The options above can also be changed at run time by pressing the ‘F2’ key.
上面的选项也可以在运行时按“F2”键改变。
实时查看网卡流量的工具除了 nload 之外,还有 slurm 以及 systat 等。

YOURLS[短网址]的安装和配置

YOURLS的安装和配置

YOURLS 是 Your Own URL Shortener 的简写,YOURLS 是一个开源的 PHP 的程序,让你可以运行自己的 URL 缩短服务。

YOURLS 功能非常强大,你可以用来做跳转链接管理和统计,也可以开放出来给大家使用,并且它还有自己的 API,将它集成到其他服务当中去。

YOURLS 的主要功能
可以公开(任何人都可以用它创建短连接)或者私有(只能你自己使用)
可以随机,顺序或者自定义 URL 关键字
详细的点击统计报表:历史点击,来源,地理位置
整洁的 AJAX 化的界面
支持开放 API

安装和配置:
1. 下载 YOURLS,解压缩
https://github.com/YOURLS/YOURLS/archive/master.zip

2.进入user/ 目录,复制文件config-sample.php为:config.php
下载中文语言包:http://yourls.org/translations 放到 user/language下

3.修改config.php
define( 'YOURLS_DB_USER', '用户名' );
define( 'YOURLS_DB_PASS', '密码' );
define( 'YOURLS_DB_NAME', '数据库名' );
define( 'YOURLS_DB_HOST', 'localhost:3306' );
define( 'YOURLS_DB_PREFIX', 'dwz_' );
define( 'YOURLS_SITE', 'http://scon.me' );
define( 'YOURLS_HOURS_OFFSET', 0 );
define( 'YOURLS_LANG', 'zh_CN' );
define( 'YOURLS_UNIQUE_URLS', true );
define( 'YOURLS_PRIVATE', true );
define( 'YOURLS_COOKIEKEY', 'scon.me.cookie' );
$yourls_user_passwords = array(
'admin' => 'admin'
);
define( 'YOURLS_DEBUG', false );
define( 'YOURLS_URL_CONVERT', 36 );
$yourls_reserved_URL = array(
'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick', 'gay',
);

4.在浏览器地址栏输入:http://IP或域名/admin/install.php 进行安装

5.添加rewrite规则
nginx直接加入配置文件中即可: rewrite ^/([0-9A-Za-z]+)/?$ /yourls-go.php?id=$1 last;
rewrite ^/([0-9A-Za-z]+)\+/?$ /yourls-infos.php?id=$1 last;
rewrite ^/([0-9A-Za-z]+)\+all/?$ /yourls-infos.php?id=$1&all=1 last;

MySQL优化

查看设置:
mysql> SHOW VARIABLES LIKE 'query_cache%';
+——————————+———-+
| Variable_name | Value |
+——————————+———-+
| query_cache_limit | 1048576 | 超过此大小的查询将不缓存
| query_cache_min_res_unit | 4096 | 缓存块的最小大小
| query_cache_size | 67108864 | 查询缓存总大小
| query_cache_type | ON | Query Cache 功能的开关
| query_cache_wlock_invalidate | OFF | 当有其他客户端正在对MyISAM表进行写操作时,如果查询在query cache中,是否返回cache结果还是等写操作完成再读表获取结果。
+——————————+———-+

查看状态
mysql> SHOW STATUS LIKE 'qcache%';
+————————-+———-+
| Variable_name | Value |
+————————-+———-+
| Qcache_free_blocks | 3 | 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。
| Qcache_free_memory | 63319944 | 缓存中的空闲内存。
| Qcache_hits | 854 | 每次查询在缓存中命中时就增大
| Qcache_inserts | 386 | 每次插入一个查询时就增大。命中次数除以插入次数就是不中比率。
| Qcache_lowmem_prunes | 0 | 缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个 数字在不断增长,就表示可能碎片非常严重,或者内存很少。
| Qcache_not_cached | 14 | 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。
| Qcache_queries_in_cache | 290 | 当前缓存的查询(和响应)的数量。
| Qcache_total_blocks | 630 | 缓存中块的数量。
+————————-+———-+

query_cache_min_res_unit的配置是一柄”双刃剑”,默认是4KB,设置值大对大数据查询有好处,但如果查询都是小数据查询,就容易造成内存碎片和浪费。

查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%
查询缓存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size * 100%
查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%

如果查询缓存碎片率超过20%,可以用FLUSH QUERY CACHE整理缓存碎片,或者试试减小query_cache_min_res_unit,如果查询都是小数据量的话。
查询缓存利用率在25%以下的话说明query_cache_size设置的过大,可适当减小;查询缓存利用率在80%以上而且Qcache_lowmem_prunes > 50的话说明query_cache_size可能有点小,要不就是碎片太多。
示例服务器 查询缓存碎片率 = 20.46%,查询缓存利用率 = 62.26%,查询缓存命中率 = 1.94%,命中率很差,可能写操作比较频繁吧,而且可能有些碎片。

相关经验:
如果Qcache_lowmem_prunes 值比较大,表示查询缓存区大小设置太小,需要增大。
如果Qcache_free_blocks 较多,表示内存碎片较多,需要清理,flush query cache
根据我看的 《High Performance MySQL》中所述,关于query_cache_min_res_unit大小的调优
,书中给出了一个计算公式,可以供调优设置参考:
query_cache_min_res_unit = (query_cache_size – Qcache_free_memory) / Qcache_queries_in_cache

MySQL主从数据库复制

MySQL主从数据库复制

查看mysql端口是开启

netstat -tanl | grep 3306

MySQL用户的授权

mysql -uroot -p

查看现有的用户授权表

select user,host,password from mysql.user;

测试连接到其他mysql服务器

mysql -uroot -p -h192.168.0.100

授权用户user1,密码456所有权限从192.168.1.181主机访问本服务器的所有数据库。

grant all on *.* to slave@192.168.1.181 identified by "123456";

登录远程MYSQL服务器

mysql -uslave -p123456 -h192.168.1.180

查看当前数据库

select database();

查看表结构

desc table1;

开启MYSQL BIN-LOG

vim /etc/my.cnf
[mysqld]
log-bin

或者

log-bin=mysql-bin

bin-log保存路径-数据库数据文件夹根目录

/var/lib/mysql

在MYSQL查看是否开启bin-log

show variables;
show variables like "%bin%";

20131228152128

创建一个最新的BIN-LOG日志

FLUSH LOGS;

查看最后一个bin日志

SHOW MASTER STATUS;

清空所有的BIN-LOG日志

RESET MASTER;

查看bin-log的内容

mysqlbinlog mysqld-bin.000001
mysqlbinlog /var/lib/mysql/mysqld-bin.000003;

查看MYSQL字符集等相关信息

\s

MYSQL的备份

mysqldump -uroot -p123 test -l -F >'/tmp/test.sql'

-l是读锁 防止备份的过程中数据写入到数据库
-F是FLUSH LOGS

MYSQL的恢复
方法1:

mysql -uroot -p123 test -v -f < /tmp/test.sql

-v查看导入的详细信息
-f当遇到错误时,可以跳过去继续往下执行
方法2:

mysql -uroot -p123 test
source test.sql

恢复binlog文件二进制日志文件

mysqlbinlog --no-defaults  mysqld-bin.000003 |mysql -uroot -p123 test

查看日志

mysqlbinlog --no-defaults /var/lib/mysql/mysqld-bin.000006 --start-position="106" --stop-position="962"|more; 

按日志恢复

mysqlbinlog --no-defaults /var/lib/mysql/mysqld-bin.000006 --start-position="704" --stop-position="876"|mysql -uroot -p123 test

继续阅读

对象不支持此属性或方法: ‘Response.CharSet’

对象不支持此属性或方法: ‘Response.CharSet’给客户开发的一个web系统,本来计划是在IIS下运行,无奈客户那边的电脑操作系统IIS无论怎样都安装不了,总不能要求客户为了这个web系统重新安装操作系统吧?所以想到了NetBox。 

开发的时候都是在IIS下进行调试,然后用NetBox运行,基本上一切正常,客户使用了一段时间后,提出增加一个新的功能,于是用ajax增加了一个新功能,NetBox下运行出错,
错误提示:
运行时错误 ‘800a01b6’
对象不支持此属性或方法: ‘Response.CharSet’
———————————————————————
(百度一下,还有很多人遇到同样的错误)
Microsoft VBScript runtime error ‘800a01b6’
Object doesn’t support this property or method: ‘Response.Charset’   

检查出错代码:
Response.CharSet    =    “GB2312”  

这行代码主要是为了解决ajax用get获得数据时,中文乱码的问题。
删除这行代码后netbox正常运行,但是ajax返回的中文数据成了乱码。
说明 NetBox不支持 Response.CharSet 。

打开netbox的使用手册,依次展开:
对象参考 → Response 对象 → Response 方法
AddHeader 方法
AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题
语法
Response.AddHeader name, value
参数
name
新的标题变量的名称
value
存储在新的标题变量中的初始值
注释
为避免命名不明确,name 中不能包含任何下划线字符 (_)。ServerVariables 集合将标题中的下划线字符解释为反斜杠。例如,下面的脚本使服务器查找一个名为 MY-HEADER 的标题名。 


示例
下面这个示例使用 AddHeader 方法要求客户端使用 BASIC 验证。 


注意 前面的脚本仅通知客户端浏览器使用哪个验证。若您在 Web 应用程序中使用该脚本,则一定要启用 Web 服务器的 BASIC 验证。 

于是将

Response.CharSet    =    "GB2312"

替换成:

Response.Addheader "Content-Type","text/html; charset=gb2312"

NetBox环境下ajax用get获取数据,中文乱码的问题解决!