centos 安装sensors查看cpu温度

root#:yum -y install lm_sensors

root#:sensors

如果提示No sensors found

运行:

root#:sensors-detect

阅读全文

Centos Shell编程入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。 Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。在一般情况下,人们并不区分 Bourne Shell和Bourne Again Shell,所以,在下面的文字中,我们可以看到#!/bin/sh,它同样也可以改为#!/bin/bash。 利用vi等文本编辑器编写Shell脚本的格式是固定的,如下: #!/bin/sh #comments Your commands go here 首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程 序。如果首行没有这句话,在执行脚本文件的时候,将会出现错误。后续的部分就是主程序,Shell脚本像高级语言一样,也有变量赋值,也有控制语句。除第 一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上”,这个符号表明下一行与此行会合并为同一行。 编辑完毕,将脚本存盘为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。执行脚本的时候,要先将脚本文件的属性改为可执行的: chmod +x filename.sh 执行脚本的方法是: ./filename.sh 下面我们从经典的“hello world”入手,看一看最简单的Shell脚本的模样。 #!/bin/sh #print hello world in the console window a = “hello world” echo $a Shell Script是一种弱类型语言,使用变量的时候无需首先声明其类型。新的变量会在本地数据区分配内存进行存储,这个变量归当前的Shell所有,任何子进 程都不能访问本地变量。这些变量与环境变量不同,环境变量被存储在另一内存区,叫做用户环境区,这块内存中的变量可以被子进程访问。变量赋值的方式是: variable_name = variable_value 如果对一个已经有值的变量赋值,新值将取代旧值。取值的时候要在变量名前加$,$variable_name可以在引号中使用,这一点和其他高级语言是明显不同的。如果出现混淆的情况,可以使用花括号来区分,例如: echo “Hi, $as” 就不会输出“Hi, hello worlds”,而是输出“Hi,”。这是因为Shell把$as当成一个变量,而$as未被赋值,其值为空。正确的方法是: echo “Hi, ${a}s” 单引号中的变量不会进行变量替换操作。 关于变量,还需要知道几个与其相关的Linux命令。 env用于显示用户环境区中的变量及其取值;set用于显示本地数据区和用户环境区中的变量及其取值;unset用于删除指定变量当前的取值,该值将被指定为NULL;export命令用于将本地数据区中的变量转移到用户环境区。 下面我们来看一个更复杂的例子,结合这个例子,我们来讲述Shell Script的语法。

阅读全文

NFS mount errors with "clnt_create: RPC: Unknown host" for CentOS 6

When attempting to mount CentOS 6, my mount fails with

clnt_create: RPC: Unknown host

Diagnostic: If we do a more thorough diagnostic, this is the issue

阅读全文

玩玩负载均衡---在window与linux下配置nginx

最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar。不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,squid这类有反向代理功能的软件了。好在其设置都不是很麻烦。 本文就之前所做过的安装和配置步骤做一下总结分享出来,以免日后忘记了。 首先是windows系统,这里建议使用window 2003企业版,而不要作用win7(太新了,我遇到无法启动nginx的问题)。要说的是,在windows下配置安装nginx还是很容易的,少了linux下下载tar再配置编译参数等等步骤,我们只要从下面的地址下载相应的zip包(大约750kb)即可,地址如下: http://sysoev.ru/nginx/nginx-0.8.21.zip 需要说明的是这个下载包是nginx 0.8.21开发版,换句话说其只能用于搭建测试环境等用途的,不能用于实际的生产环境(受限于windows文件句柄数限制)。 下载并将该包中的文件解压到c盘上,为了配置使用方便,我将其解压后的文件夹名称从“nginx-0.8.19”改为”nginx”,这样我们只要将要负载均衡的站点在iis中设置好之后,将相应的链接地址放到nginx的相应配置文件中即可,这里我们打开C:\nginx\conf\nginx.conf文件,将下面的内容放到该文件的“server { ”上方行处:

阅读全文

允许远端使用mysql

mysql中敲命令

grant all privileges on . to ‘root‘@’%’ identified by ‘123456’ with grant option;

阅读全文

sshd 登陆慢问题解决

修改客户端配置文件sshd_conf # vi /etc/ssh/sshd_conf 找到 GSSAPIAuthentication yes 改为 GSSAPIAuthentication no 如果没有,则创建

阅读全文

安装ssh

yum -y install openssh

阅读全文

Linux 系统如何禁ping, CentOS 禁ping

Linux系统,CentOS操作系统如何设置禁止别人ping我们自己的服务器,下面给大家介绍一些常用的方法: 1、以root账户进入系统,然后编辑文件icmp_echo_ignore_all vi /proc/sys/net/ipv4/icmp_echo_ignore_all 0 表示允许ping 1 表示禁止ping 可以直接运行以下命令 [root@00isp ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all [root@00isp ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all 此上两条命令的效果实时生效,可以用另外的机器ping来测试是否生效。以上方式只是临时性的禁ping 重启后会失效,如果想要重启过后也不能ping可以做如下操作 /etc/rc.d/rc.local中增加一行 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 另外可以在配置文件 /etc/sysctl.conf 文件中增加一行 net.ipv4.icmp_echo_ignore_all=1 2、使用IPTables禁止PING echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all 这下是别人不能ping你,你也不能ping别人,其实使用iptable最简单 iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -j DROP iptables -A INPUT -p icmp –icmp-type 0 -s 0/0 -j ACCEPT iptables -A OUTPUT -p icmp –icmp-type 0 -s 192.168.29.1 -j DROP iptables -A OUTPUT -p icmp –icmp-type 8 -s 192.168.29.1 -j ACCEPT

阅读全文

kill -HUP pid

kill -HUP pid pid 是进程标识。如果想要更改配置而不需停止并重新启动服务,请使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。 根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。清单 2 显示了向所有正在运行的 Web 服务器进程发送挂起信号的一种方法。 清单 2. 告诉 Web 服务器重新加载其配置文件并对文件进行复位操作 root@holy [507]$ ps -A | grep httpd | grep -v grep | awk ‘{ print $1; }’ | xargs -L 1 sudo kill -HUP 上面的命令中包含了很多的操作,所以让我们来仔细地看一下管道的每个部分。ps 和 grep 命令用来在所有的进程中搜索 httpd(并且忽略用来搜索 httpd 进程的 grep 进程)。接下来,awk 只显示输出结果中的进程 ID,并将它传递给 xargs。然后,xargs 命令接受每个进程 ID(因为使用了 -L 1 以便一次提取一行内容),并使用 sudo kill -HUP 向相应的进程发送一个挂起信号。 LINUX和Unix都适用: 改/etc/ssh/sshd_config,将里面的Port改为新端口,比如10022,然后 kill -HUP `cat /var/run/sshd.pid` 就行了。 现有连接自己不会断,因为kill -HUP `cat /var/run/sshd.pid` 只是HUP监听的那个,已经建立的连接(不同的 pid)不会断。 然后你在现有账号下面exit,在用新的端口登陆就可以了。 PS: HUP(1)是让进程挂起,睡眠; kill (9)六亲不认的杀掉 term(15)正常的退出进程 因为进程可能屏蔽某些信号,所以它们的用处也就不一样。。。

阅读全文

nginx日志自动分割的完美实现

文件名nginx_access_log.sh 以下是脚本 #!/bin/bash - #1.nginx日志存放路径 first_path=”/lnmp/nginx/logs” path_array=($first_path) #2.日志标识前缀数组 first_prefix_sign=”first” prefix_array=($first_prefix_sign) #3.日志成功错误标识后缀数组 bool_array=(“access” “error”) #4.nginx日志切割备份后缀 postfix=`date -d ‘+0 days’ +%Y%m%d`“.log” #5.备份当前的日志文件,重命名改为日期后缀 for path in ${path_array[]} do for prefix in ${prefix_array[]} do for bool in ${bool_array[*]} do file=$path/$bool.log backfile=$path/$prefix.$bool.$postfix echo $file echo $backfile if [ -e $file ];then mv $file $backfile fi done done done #6.查找nginx进程号,让其产生新的日志文件 nginx_pid=`ps -ef|grep -E ‘nginx: master process nginx’|grep -v ‘grep’|awk ‘{print $2}’` #USR1:Reopen log files,刷新nginx日志文件 kill -HUP $nginx_pid

阅读全文