存档

‘Linux’ 分类的存档

Linux下LAMP服务selinux权限问题

2013年9月17日 评论已被关闭

我们在开启了selinx的linux系统中,即使正确的设置了文件系统权限,常常还是会出现权限问题,这是我们要思考是不是selinx引起的了。

1、mysql:

selinux打开的前提下,修改/etc/my.cnf中mysqld数据路径后启动Mysql服务出错,查看/var/log/mysql.log提示:

给目录设置selinux权限:

再次启动mysql服务提示:

执行mysql_install_db创建mysql数据库,然后启动mysql成功:

2、httpd站点:

在selinux打开的前提下,运行PHP代码在/var/log/http/下错误日志中发现如下错误:

配置站点目录的selinux权限即可:

3、关闭selinux:

修改/etc/sysconfig/selinux文件,将SELINUX=enforcing改成SELINUX=disabled并重启服务器,即能永久关闭selinux.

分类: Linux 标签: , , , , ,

linux bash查询百度排名脚本rank.sh

2013年7月8日 没有评论

今天写了个"bash"脚本"rank.sh",用来查询指定域名和关键字在百度搜索引擎的排名,记录下:


"rank.sh"脚本主要用到的命令:

1. xxd命令: "xxd"能将文本转为16进制,再用"sed"实现每两个字符前插入一个"%"符号,即可在bash实现"url编码"的功能,如:

  1. # echo '中文'|xxd -plain | sed 's/\(..\)/%\1/g'
  2. %e4%b8%ad%e6%96%87%0a

2. curl: 用来搜索关键字并抓结果,"curl"的用法参考:Linux curl命令参数详解

3. sed: 本来"rank.sh"脚本大部分功能应该由"sed"命令实现的,遗憾的是"sed"不支持"非贪婪模式",如:

  1. # echo "1<p>2</p>3<p>4</p>5" | sed 's#<p>.*\?</p>##g'
  2. 15 #期望结果为135,输出的结果却是15

虽然本例可以通过下列正则表达式实现,但是在特殊场合不支持"非贪婪模式",依然是一件很悲剧的事情,所以"rank.sh"脚本大部分功能实现都由"grep -Po"代替了。

  1. # echo "1<p>2</p>3<p>4</p>5"|sed 's#<p>[0-9]</p>##g'
  2. 135

4. grep: "grep"真是个好东西,能实现php "preg_match_all"的功能,还支持"非贪婪模式",真是太好了:

  1. # echo "1<p>2</p>3<p>4</p>5" | grep -Po "<p>[0-9]</p>"
  2. <p>2</p>
  3. <p>4</p>


linux bash查询百度排名"rank.sh"脚本内容:

下面是bash百度排名查询脚本"rank.sh"的代码,你可以复制代码粘贴到linux系统中运行,也可以直接通过"wget http://www.aiezu.com/uploads/bash/rank.sh "下载脚本运行,记住要用"chmod a+x rank.sh"添加可执行权限才可运行哦~

  1. #!/bin/bash
  2. A="Mozilla/5.0" #user-agent
  3. cookies="/tmp/baiducookies"
  4. if [ -z "$1" ] || [ -z "$2" ]; then
  5.     echo "Useage: $0 DomainName Keyword";
  6.     echo "Example: $0 www.aiezu.com 爱E族";
  7.     exit
  8. fi
  9. #中文urlencode编码
  10. key=$(echo "$2" | tr -d '\n' | xxd -plain | sed 's/\(..\)/%\1/g');
  11. me=$1;
  12. #页码1-10页,每页100个查询结果,如果第一页未找到结果,自动找下一页
  13. for page in `seq 1 10`;
  14. do
  15.     d="wd=${key}&usm=1&ie=utf-8&rsv_page=1&rn=100";
  16.     if [ "$page" -gt "1" ]; then
  17.         let pn=(page-1)*100;
  18.         d="$d&pn=$pn";
  19.     fi
  20.     url="http://www.baidu.com/s";
  21.     r0=$(curl -c "$cookies" -b "$cookies" -d "$d" -G -A "$A" -e "$e" -# "$url"|tr '\n' ' '|sed 's#</\?b>##g');
  22.     r1=$(echo $r0|grep -Po '<table[^>]*id="[0-9]*"[^>]*>.*?</table>'|sed -n 's@.* id="\([0-9]*\)".*\(<span class="\(g\|c-showurl\)">\|<font size="-1" color="#008000">\)[ ]*\([^> /]*\).*@\1|\4@gp');
  23.     v=$(echo $r1|grep -Po "[^ ]*$me"|cut -d'|' -f2 | sort | uniq);
  24.     if ! [ -z "$v" ]; then
  25.         for domain in $v;
  26.         do
  27.             num=`echo $r1|grep -Po "[^ ]*$domain"|cut -d'|' -f1|tr '\n' ' '`;
  28.             echo -e "$domain\t$num";
  29.         done | sort -k 2 -n
  30.         exit
  31.     fi
  32. done
linux bash查询百度排名"rank.sh"脚本使用方法:

复制或者下载脚本到linux系统,然后:

  1. # chmod a+x rank.sh #添加可执行权限
  2. # ./rank.sh #查看用法
  3. Useage: ./rank.sh DomainName Keyword
  4. Example: ./rank.sh www.aiezu.com 爱E族
  5. # ./rank.sh qq.com 微博
  6. ######################################## 100.0%
  7. t.qq.com 2 11 13 14 17 35 36 44 45 48 53 81
  8. p.t.qq.com 17 31 #域名p.t.qq.com在查询关键"微博"时间在百度排在第17、31名
  9. dev.t.qq.com 35
  10. open.t.qq.com 36
  11. blog.qq.com 38
  12. www.qq.com 49
  13. t.auto.qq.com 56
  14. ent.qq.com 81
分类: Linux, SEO/SEM 标签: , , , ,

Linux查看系统信息命令和方法

2013年7月5日 没有评论

收集整理的一些linux查看系统信息的命令和方法:

一、linux查看服务器系统信息的方法:

1、查看主机名/内核版本/CPU构架:

  1. # uname -n -r -p -o
  2. localhost.localdomain 2.6.32-220.el6.i686 i686

阅读全文...

分类: Linux 标签: , , , ,

Linux curl命令参数详解

2013年7月3日 没有评论

linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态。
  curl命令参数介绍请参考:http://aiezu.com/article/linux_curl_command.html

一、linux curl用法举例:
1. linux curl抓取网页:

抓取百度:

阅读全文...

分类: Linux 标签: , , , , ,

unix时间戳(unix timestamp)与北京时间的互转方法

2013年7月1日 没有评论

unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp),是从1970年1月1日(UTC/GMT的午夜)开始到某一时刻所经过的秒数,不考虑闰秒。

时间戳0按照ISO 8601格式写出来为 1970-01-01T00:00:00Z 。一小时为3600秒,一个基准日(也称纪元日,epoch day)是86400秒,闰秒没有计算在内。

转换方法: bash mysql php javascript java java python java perl sqlserver Vbs/Asp ruby

1、在linux bash下北京时间与unix时间戳互转:

获取unix timestamp:

  1. 命令:date "+%s"
  2. 输出:1372654714

获取北京时间:

  1. 命令:date '+%Y-%m-%d %H:%M:%S'
  2. 输出:2013-07-01 12:55:56

unix timestamp转北京时间:

  1. 命令:date -d@1372654714 '+%Y-%m-%d %H:%M:%S'
  2. 输出:2013-07-01 12:58:34

北京时间转unix timestamp:

  1. 命令:date -d"2013-07-01 12:58:34" '+%s'
  2. 输出:1372654714

阅读全文...

Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录

2013年6月28日 7 条评论

ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法。

使用密钥登录分为3步:
1、生成密钥(公钥与私钥);
2、放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中;
3、配置ssh客户端使用密钥登录。
阅读全文...

分类: Linux 标签: ,

linux远程桌面vnc服务配置详细教程

2013年6月27日 没有评论

vnc是Virtual Network Computing(虚拟网络计算机)的缩写。VNC是由AT&T的欧洲研究实验室开发的一款优秀的跨平台远程桌面控制软件,支持linux,unix,windows等操作系统跨平台远程桌面控制。VNC有两部分组成,分别是:服务端(vncserver)和客户端(vncviewer)。下面以Linux(VNC服务端)、Windows(VNC客户端)为平台介绍VNC的安装、配置和使用。
阅读全文...

分类: Linux 标签: ,

Oracle 10g em 登录提示“数据库状态当前不可用..”问题解决方法

2013年6月25日 没有评论
oracle 10g em 登录提示“数据库状态当前不可用可能是因为数据库的状态为装载或不装载”问题解决方法

今天在VM上架构了Oracle 10G 来做test 众所周知,10g采用的是B/S架构的企业管理器,因此用浏览器打开Http://localhost:5500/em,却提示:“数据库状态当前不可用。可能是因为数据库的状态为装载或不装载。……”的提示,点"启动"并输入主机名等一大堆后,又提示:ORA-28000: the account is locked ,数据库登不上,网上找了很多解决方式,尝试了各种方式,终于解决了。­

阅读全文...

分类: Linux, Unix 标签: ,

Linux下Apache完美集成SVN(Yum安装版)

2013年6月19日 6 条评论

svn(subversion)是目前最流行的开源版本控制工具。使用apache集成svn比svn服务独立运行好处多多,最大的优点是使svn使用http80端口检出,防火墙可以少开放一个端口,减少服务器安全风险和降低维护成本。下面在CentOS6.0系统下通过yum安装的方式,介绍在linuxapache完美集成svn。

一、规划目录:

阅读全文...

分类: Linux 标签: , , ,

在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题

2013年4月21日 没有评论

iconv命令是运行于linux/unix平台的文件编码装换工具。当我们在linux/unix系统shell查看文本文件时,常常会发现文件的中文是乱码的,这是由于文本文件的编码与当前操作系统设置的编码不同而引起的,这时可以使用iconv进行编码转换,从而解决乱码问题。
阅读全文...

分类: Linux, Unix 标签: , , ,