Questions and Answers from the Backup Webinar原文出处
总而言之,言而总之。 A LVM snapshot在备份当中是相当重要和好玩的!
2007年11月22日星期四
2007年11月16日星期五
系统管理工具-awk(1)
awk是老用老忘记,今天开始系统的做个学习笔记。主要参考A Guided Tour Of Awk
先帖下测试数据吧
66.249.70.76 - - [01/Oct/2007:00:00:00 +0800] "GET /users/show/146659 HTTP/1.1" 200 3550 "-" "Mozilla/5.0
(compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
这是一条来自googlebot的爬虫留下的访问记录。我们把测试数据假设为test.data
那要取出googlebot的访问记录就有以下几种方法
1.grep '+http://www.google.com/bot.html' test.data
2 . awk '/\+http:\/\/www\.google\.com\/bot\.html/'
test.data (关于正则表达式,也需要找时间整理下,这里. 和+都是元字符所以需要转义,而/是因为我们匹配的标志符号使用了/)
所以这里awk和grep实现的功能也是一样的了。
如果我们想得到第七栏的访问地址的话,我们就可以
awk '/+http:\/\/www\.google\.com\/bot\.html/ {print $7}' test.data
如果想知道被googlebot正常访问(header为200)的url
awk '/+http:\/\/www\.google\.com\/bot\.html/ {if ($9=200) print $7}' test.data
如果想知道googlebot从网站上爬走多少流量的
awk 'BEGIN { traffic=0 } /+http:\/\/www\.google\.com\/bot\.html/ {if ($9=200) print $7;traffic+=$10 } END {print traffic}' test.data
今天就写到这里了
先帖下测试数据吧
66.249.70.76 - - [01/Oct/2007:00:00:00 +0800] "GET /users/show/146659 HTTP/1.1" 200 3550 "-" "Mozilla/5.0
(compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
这是一条来自googlebot的爬虫留下的访问记录。我们把测试数据假设为test.data
那要取出googlebot的访问记录就有以下几种方法
1.grep '+http://www.google.com/bot.html' test.data
2 . awk '/\+http:\/\/www\.google\.com\/bot\.html/'
test.data (关于正则表达式,也需要找时间整理下,这里. 和+都是元字符所以需要转义,而/是因为我们匹配的标志符号使用了/)
所以这里awk和grep实现的功能也是一样的了。
如果我们想得到第七栏的访问地址的话,我们就可以
awk '/+http:\/\/www\.google\.com\/bot\.html/ {print $7}' test.data
如果想知道被googlebot正常访问(header为200)的url
awk '/+http:\/\/www\.google\.com\/bot\.html/ {if ($9=200) print $7}' test.data
如果想知道googlebot从网站上爬走多少流量的
awk 'BEGIN { traffic=0 } /+http:\/\/www\.google\.com\/bot\.html/ {if ($9=200) print $7;traffic+=$10 } END {print traffic}' test.data
今天就写到这里了
2007年11月13日星期二
mysql系统变量--动态系统变量
当你熟悉了mysql之后,你可能会希望能够经常的调节系统变量,来观察那种配置参数是最适合当前的应用和硬件水平。
表格太大了,我不太清楚怎么把他弄上来!反正手册上关于动态系统变量那一章节上面有。回头多瞧两遍。
着重要提出来的是在set global或者set session的时候一定要注意那些是全局的,那些是会话级别的!如果只有是global级别的话。当你修改过该变量后,当前会话中的变量也已经修改了,可以同时使用
mysqladmin extended-status variables;!
来查看。
特别是针对myisam表的优化,关系性能的参数重要参数不外乎
1.key_buffer_size
mysql> show status like 'Key_%';
+------------------------+------------+
| Variable_name | Value |
+------------------------+------------+
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 663670 |
| Key_blocks_used | 264171 |
| Key_read_requests | 9478725087 |
| Key_reads | 572252 |
| Key_write_requests | 26654547 |
| Key_writes | 15212514 |
+------------------------+------------+
key_read_requests/key_reads=1656 马虎
key_blocks_unused 663670 稍微有点多了
总的来讲就是key_buffer_size可能稍微大了点,现在没有完全利用上来
2.query_cache_size
mysql> show status like 'Qcache%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 1999 |
| Qcache_free_memory | 8776024 |
| Qcache_hits | 128809199 |
| Qcache_inserts | 200930383 |
| Qcache_lowmem_prunes | 66376219 |
| Qcache_not_cached | 16102972 |
| Qcache_queries_in_cache | 4217 |
| Qcache_total_blocks | 10622 |
+-------------------------+-----------+
同时我们也可以看看到底从运行到现在,mysql执行了多少个select
mysql> show status like'Com_select%';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| Com_select | 217524587 |
+---------------+-----------+
又执行了多少个insert
mysql> show status like'Com_insert';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Com_insert | 2128506 |
+---------------+---------+
同时又执行了多少个update
mysql> show status like'Com_update';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Com_update | 9940846 |
+---------------+---------+
在这台mysql上面select/(insert+update)接近10.
3.table_cache
mysql> show status like 'open%tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 635 |
| Opened_tables | 18169 |
+---------------+-------+
4.long_query_time
show variables like 'long_query_time%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| long_query_time | 1 |
+-----------------+-------+
先写到这里:)
表格太大了,我不太清楚怎么把他弄上来!反正手册上关于动态系统变量那一章节上面有。回头多瞧两遍。
着重要提出来的是在set global或者set session的时候一定要注意那些是全局的,那些是会话级别的!如果只有是global级别的话。当你修改过该变量后,当前会话中的变量也已经修改了,可以同时使用 mysqladmin extended-status variables;!
来查看。
特别是针对myisam表的优化,关系性能的参数重要参数不外乎
1.key_buffer_size
mysql> show status like 'Key_%';
+------------------------+------------+
| Variable_name | Value |
+------------------------+------------+
| Key_blocks_not_flushed | 0 |
| Key_blocks_unused | 663670 |
| Key_blocks_used | 264171 |
| Key_read_requests | 9478725087 |
| Key_reads | 572252 |
| Key_write_requests | 26654547 |
| Key_writes | 15212514 |
+------------------------+------------+
key_read_requests/key_reads=1656 马虎
key_blocks_unused 663670 稍微有点多了
总的来讲就是key_buffer_size可能稍微大了点,现在没有完全利用上来
2.query_cache_size
mysql> show status like 'Qcache%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 1999 |
| Qcache_free_memory | 8776024 |
| Qcache_hits | 128809199 |
| Qcache_inserts | 200930383 |
| Qcache_lowmem_prunes | 66376219 |
| Qcache_not_cached | 16102972 |
| Qcache_queries_in_cache | 4217 |
| Qcache_total_blocks | 10622 |
+-------------------------+-----------+
同时我们也可以看看到底从运行到现在,mysql执行了多少个select
mysql> show status like'Com_select%';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| Com_select | 217524587 |
+---------------+-----------+
又执行了多少个insert
mysql> show status like'Com_insert';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Com_insert | 2128506 |
+---------------+---------+
同时又执行了多少个update
mysql> show status like'Com_update';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Com_update | 9940846 |
+---------------+---------+
在这台mysql上面select/(insert+update)接近10.
3.table_cache
mysql> show status like 'open%tables';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 635 |
| Opened_tables | 18169 |
+---------------+-------+
4.long_query_time
show variables like 'long_query_time%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| long_query_time | 1 |
+-----------------+-------+
先写到这里:)
2007年11月12日星期一
mysql安全--InnoDB CONVERT_SEARCH_MODE_TO_INNOBASE
今天打开milw0rm,看见了一个关于MySQL服务器,InnoDB CONVERT_SEARCH_MODE_TO_INNOBASE函数拒绝服务漏洞,据说对MySQL <=6.0 可能都会哟有影响,但是在我的 2.0.20上面似乎得不到效果。
在绿盟上也看到了这个安全警报,mysql官方也有了这个bug的描述。
呆会下个5.1.22测试下。这样在得到alter权限后己可以导致mysql crash,但是还没有patch.
简单攻击测试代码如下
mysql> CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`foo` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected
mysql> SELECT * FROM test WHERE CONTAINS(foo, 'bar');
Empty set
mysql> ALTER TABLE test ADD INDEX (foo(100));
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM test WHERE CONTAINS(foo, 'bar');
ERROR 2013 : Lost connection to MySQL server during query
在绿盟上也看到了这个安全警报,mysql官方也有了这个bug的描述。
呆会下个5.1.22测试下。这样在得到alter权限后己可以导致mysql crash,但是还没有patch.
简单攻击测试代码如下
mysql> CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
`foo` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Query OK, 0 rows affected
mysql> SELECT * FROM test WHERE CONTAINS(foo, 'bar');
Empty set
mysql> ALTER TABLE test ADD INDEX (foo(100));
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM test WHERE CONTAINS(foo, 'bar');
ERROR 2013 : Lost connection to MySQL server during query
2007年11月1日星期四
linux系统命令 之 umask fuser
一直不太清楚umask的作用,今天稍微查了下,留在这里做个记录。
umask
功能:设置权限掩码(决定新建文件的权限)
格式:umask 权限值(超级用户默认为022,普通用户默认为002)
实例:# umask 044
计算公式:目录:777-umask
fuser
功能:查看文件或端口使用者
格式: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
[ - ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
实例:fuser -n tcp 80
fuser /opt
下次在详细记录下lsof.............
umask
功能:设置权限掩码(决定新建文件的权限)
格式:umask 权限值(超级用户默认为022,普通用户默认为002)
实例:# umask 044
计算公式:目录:777-umask
fuser
功能:查看文件或端口使用者
格式: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
[ - ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME...
实例:fuser -n tcp 80
fuser /opt
下次在详细记录下lsof.............
订阅:
博文 (Atom)
