MySQL函数 GROUP_CONCAT,相当有用

一直想找这个函数,今天终于找到了,属于聚合函数,也正是猜测可能是个函数函数、才通过“MySQL 聚合函数” google到的。

使用过程中可能会遇到1260错误,如下:

#1260 - %d line(s) were cut by GROUP_CONCAT()

这是因为group_concat()有最大长度限制,该限制值默认为1024,可以从mysql环境变量里可以查看。如需修改该值,可以在mysql配置文件里指定:

group_concat_max_len = 102400

也可以在mysql运行时动态指定,执行语句:

SET GLOBAL group_concat_max_len=102400;

参考该链接http://www.fuchaoqun.com/2008/12/mysql-trap-of-group-concat/,或者mysql手册(推荐)。

centos 6 下编译安装 nginx

下载nginx源码包,可以到nginx官方的下载文件归档里 http://nginx.org/download/ 下载

下载pcre源码,并编译安装,从pcre官方下载  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.zip

解压缩 unzip pcre-8.21.zip

进入源码目录 cd pcre-8.21/

./configure

make

make install

全部使用默认,不必要指定目录,这样包容易被找到。

安装nginx

这里使用nginx 1.0.8为例。

下载源码包  wget http://nginx.org/download/nginx-1.0.8.tar.gz

解压缩 tar xvf nginx-1.0.8.tar.gz

进入源码目录 cd nginx-1.0.8/

查看配置参数 ./configure --help (此步可以省略)

简单配置 ./configure
(注:centos 6 默认安装pcre包的,但是其安装位置并不为nginx识别,而且即使手工指定好像也不行,编译过程中会提示找不到文件;所以才需要先安装pcre包)

不指定任何配置选项,应该可以成功通过,得到如下的消息

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1: using system crypto library
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

然后就是 make

应该不会出问题,接着make install 就安装好了。

先测试一下是否可以运行,执行 /usr/local/nginx/sbin/nginx 没有消息提示,通过浏览器打开nginx所在的ip地址,应该可以看到

 

Welcome to nginx!

 

这样的一个简单页面,证明nginx可以工作。

接下来的工作就是配置nginx了,其配置文件为/usr/local/nginx/conf/nginx.conf

linux服务器阻止恶意的暴力ssh登录

可以使用 DenyHosts 或 pam_tally2.so 实现

DenyHosts是Python语言编写的程序,主动分析登录日志文件/var/log/secure,对于多次连续的重复错误登录ip,加入/etc/hosts.deny,从而阻止这些暴力登录。

详细参看:linux下使用denyhosts防止ssh暴力破解

pam_tally2,则是使用pam模块,对于连续N次登录错误的用户,自动禁止登录若干时间。

详细参看:使用pam模块pam_tally2设置Linux用户连续N次输入错误密码自动锁定X分钟

fedora16通过命令行配置无线,并开机自动连接

装在上网本上用来折腾的一个fedora 13系统,没有图形界面,但还是花了整整一夜加半天时间从13升级到16,已经是最新的版本了;并把自动连接无线的命令写到一个脚本文件里,开机自动运行。

以前一直不能通过命令行启用无线,后来才发现是因为NetworkManager服务的原因,禁止该服务后可以通过命令行配置无线正常连网。最好把rpm -e NetworkManager 卸载掉这个NM包,以免它的干扰。

无线使用最简单的wep加密,在路由器上限制了允许mac地址,因此无线安全不是大问题。

无线配置命令非常简单
iwconfig wlan0 essid "[无线AP名称]" key s:[无线密码]
ifconfig wlan up
dhclient wlan0

将写入一个文件,保存为/root/script/start-wlan.sh,也可以保存到其它目录里。

在文件/etc/rc.d/rc.local 里加入一行

.  /root/script/start-wlan.sh

即可

 

[转]让你提升命令行效率的 Bash 快捷键

生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。

编辑命令

  • Ctrl + a :移到命令行首
  • Ctrl + e :移到命令行尾
  • Ctrl + f :按字符前移(右向)
  • Ctrl + b :按字符后移(左向)
  • Alt + f :按单词前移(右向)
  • Alt + b :按单词后移(左向)
  • Ctrl + xx:在命令行首和光标之间移动
  • Ctrl + u :从光标处删除至命令行首
  • Ctrl + k :从光标处删除至命令行尾
  • Ctrl + w :从光标处删除至字首
  • Alt + d :从光标处删除至字尾
  • Ctrl + d :删除光标处的字符
  • Ctrl + h :删除光标前的字符
  • Ctrl + y :粘贴至光标后
  • Alt + c :从光标处更改为首字母大写的单词
  • Alt + u :从光标处更改为全部大写的单词
  • Alt + l :从光标处更改为全部小写的单词
  • Ctrl + t :交换光标处和之前的字符
  • Alt + t :交换光标处和之前的单词
  • Alt + Backspace:与 Ctrl + w 类似,分隔符有些差别

重新执行命令

  • Ctrl + r:逆向搜索命令历史
  • Ctrl + g:从历史搜索模式退出
  • Ctrl + p:历史中的上一条命令
  • Ctrl + n:历史中的下一条命令
  • Alt + .:使用上一条命令的最后一个参数

控制命令

  • Ctrl + l:清屏
  • Ctrl + o:执行当前命令,并选择上一条命令
  • Ctrl + s:阻止屏幕输出
  • Ctrl + q:允许屏幕输出
  • Ctrl + c:终止命令
  • Ctrl + z:挂起命令

Bang (!) 命令

  • !!:执行上一条命令
  • !blah:执行最近的以 blah 开头的命令,如 !ls
  • !blah:p:仅打印输出,而不执行
  • !$:上一条命令的最后一个参数,与 Alt + . 相同
  • !$:p:打印输出 !$ 的内容
  • !*:上一条命令的所有参数
  • !*:p:打印输出 !* 的内容
  • ^blah:删除上一条命令中的 blah
  • ^blah^foo:将上一条命令中的 blah 替换为 foo
  • ^blah^foo^:将上一条命令中所有的 blah 都替换为 foo

友情提示:

  1. 以上介绍的大多数 Bash 快捷键仅当在 emacs 编辑模式时有效,若你将 Bash 配置为 vi 编辑模式,那将遵循 vi 的按键绑定。Bash 默认为 emacs 编辑模式。如果你的 Bash 不在 emacs 编辑模式,可通过 set -o emacs 设置。
  2. ^S、^Q、^C、^Z 是由终端设备处理的,可用 stty 命令设置。

原文:http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/

译文:http://linuxtoy.org/archives/bash-shortcuts.html

nginx下为wordpress配置重写规则/rewrite

nginx不能支持.htaccess的rewrite规则,所以使用nginx作web服务器,配置wordpress固定链接会比较麻烦一点,要自己写规则到nginx配置文件里。网上也看到一些配置规则,不过觉得怪怪的。

发现nginx官方网站上有个页面,关于wordpress重写规则的,http://wiki.nginx.org/WordPress里面有“cool”的规则,本站的nginx配置如下,其中一行 try_files $uri $uri/ /index.php; 就是这行,应该比网上有些文章里的规则更cool。

    server {
        server_name  blog.path8.net;
        root /var/www/vhost/blog;
        access_log  logs/vhost-blog.path8.net.log  main;

        location /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                index  index.html index.htm index.php;
                # from nginx.org rewrite rule
                # This is cool because no php is touched for static 
 try_files $uri $uri/ /index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/vhost/blog$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

ssh + autoproxy(firefox插件) 跨栏安全访问网络

首先要有ssh账号,当然为了跨栏必须要用国外的ssh账号,这 里假定已经有国外ssh账号。

下载软件Tunnelier 安装(或解压缩),得到以下文件,运行其中的 Tunnelier.exe

如下图示中,login 选项卡里,输入Host(主机IP地址或域名都可),Username端口填写ssh账号用户名,Initial methord选择password,Password填写ssh账号密码。

切换到Otions选项卡, 取消如下的 Open Terminal 与 Open SFTP.

切换到Services选项卡, 勾选如下socks/http proxy forwarding下的 Enabled, Listen Port(本地监听端口)改为7070 (不改也可以,但在使用时要相应改为这里设定的端口)

点Login按钮登录ssh服务器。

第一次登录时,会出现密钥保存提示,如下,点 Accept and Save。

消息提示框里看到如下图或线处所示,即ssh转发通道建立完成。

接下来就可以在浏览器中设置代理,推荐使用firefox+autoproxy(理论上IE也可以,未实际测试)

firefox中安装autoproxy插件。

受限网站的访问方法

重要提示:

仅限公司内部使用,不对外传播,不得用于非法目的

非必需情况下,不要使用“全局模式”!(文中有说明)

非必需情况下,绝对不允许看YouTubo等大流量的受限网站

使用firefox浏览器

点菜单栏上 工具 – 附加组件

搜索 autoproxy

点“添加到Firefox(A)…”,稍后出现如下

倒计时完毕后,点立即安装

安装完成后点“重新启动Firefox”;重新启动完成后如下

关掉“附加组件”对话框

勾选如上图中的gfwList(P.R.China),点确定。

点菜单栏上 工具 – 附加组件

点”Autoproxy 0.4b2.xxx “的”选项”,打开如下的“AutoProxy 首选项”

如上的弹出窗口菜单栏 – 代理服务器 – 编辑代理服务器

注意其中所示的 ssh –D一行,这里7070即是使用tunnelier里面的本地端口号。

(其它项目不需要用做任何修改;如有兴趣可私下研究),确定

点“AutoProxy 首选项”对话框菜单栏 – 代理服务器 – 选择代理服务器

把“默认代理”修改为 “ssh –D” (如图),确定。

点“AutoProxy 首选项”对话框菜单栏 – 选项

保持 “自动模式”被选中(前带黑点)、”在状态栏显示”被选中(前带勾号)

点“AutoProxy 首选项”对话框的“确定”关闭之。

关闭“附加组件”对话框。

Firefox浏览器的右下角将有一个红色的“福”字图标,请打开 “脸书网”http://www.facebook.com/ 测试能否打开。

点击Firefox右下角的“福”字图标,可以切换代理模式,它有三种模式:

红色:自动模式 - firefox将自动对需要翻墙的网站使用代理。

绿色:全局模式 - firefox将对所有网站使用代理,此时访问国内网站将会非常慢。

灰色:禁用模式 – 对所有网站都不使用代理。

一般情况下请保持它为红色。

至此设置完毕,您的firefox已经是最智能的翻墙利器。

Autoproxy还有更多功能,可自行研究;不过按上述所设置已经足够对付绝大多数需求。

注意:

1. 一般不要使用“全局模式”!

常见问题

1 如果firefox出现如下所示的“代理服务器拒绝连接”:

请检查默认代理是否是ssh –D,条目里的配置是否正确。

再请检查tunnelier是否启动并成功连接到远程服务器。

archlinux安装桌面环境,startx:command not found/cannot execute "/usr/bin/sdm"

试用archlinux,根据http://www.ha97.com/3496.html(ArchLinux 2010.05安装及基本配置)操作。

但运行startx却得到command not found,在centos 6 上查startx,该文件位于/usr/bin/startx,属于xorg-x11-xinit包

[feng@fsc ~]$ whereis /usr/bin/startx
startx: /usr/bin/startx /usr/share/man/man1/startx.1.gz
[feng@fsc ~]$ rpm -qf /usr/bin/startx
xorg-x11-xinit-1.0.9-13.el6.i686

不幸的是pacman -S 却说没有这个包,经搜索得知在archlinux里,这个包包为xorg-xinit,感到不可理解的是,为什么这个包没有在安装xorg包时没在依赖检查里自动安装。

运行init 5进入gnome图形桌面时,出现INIT: cannot execute "/usr/bin/xdm",要修改

/etc/inittab

x:5:respawn:/usr/bin/xdm -nodaemon

一行修改为,

x:5:respawn:/usr/sbin/gdm -nodaemon

目前的archlinux 包里没有了xdm,而以gdm代替,但inittab文件里却没有相应的更新。

看来archlinux真的不是那么容易,没有一定的linux经验难度。

本文是很久以前操作手记文章,那时折腾archlinux桌面,文章里写的这一步好像是通过了,但后来还是没有成功,忘了卡在哪里,就放弃了,以后再没有搞archlinux,本文也就无限期搁置了。于是本文在草稿箱里放了5年多。最近整理博客看其更新时间为 2011年10月3日 @ 15:32,这么久都没有继续,大概以后也不会续写了,直接发出来算了(2016-10-10 18:06)

Pages: Prev 1 2 3 ... 4 5 6 7 8 9 10 11 12 13 14 Next