常用linux命令和配置

 

find只查看文件和只查看目录

find -type f -name clexec

find -type d -name clexec

 

解压rpm

[root@sj_x861 2]# ls
etc  opt
[root@sj_x861 2]# rpm2cpio ../FJSVclrms-4.3.0-05.rhel5_i386.rpm | cpio -idm
cpio: ./etc/init.d/clrms not created: newer or same age version exists
cpio: ./etc/opt/FJSVcluster/FJSVclrms not created: newer or same age version exists

!如果已经解压过,则会出现上述信息,版本已经最新的话,就不会重复常见解压后的文件。

 

rpm命令

查看rpm包将安装那些文件,安装到哪些目录下:

rpm –qpl rpm包

 

touch创建文件

touch只能创建文件,包括vi,文件所在的上层目录必须存在。

rpm包查询

##查看rpm包的位数,32位还是64位。

[root@c3 ~]# rpm -qa --queryformat %-{name}-%{version}-%{release}-%{arch}"\n" | grep FJSVclapi

FJSVclapi-4.3.2-03-x86_64

[root@node2 CVS_SRC]# rpm -qa --queryformat %-{name}-%{version}-%{release}-%{arch}"\n" | grep FJSVclapi

FJSVclapi-4.3.2-03-i386

-noarch说明这个包可以在各个不同的cpu上使用。基于CPU共通标准的RPM包。

 

rpm卸载失败,因为prerun脚本执行失败:

[root@bx15 ~]# rpm -e FJSVhvgd-4.2.3-4.x86_64

Error: hvenv.local modification aborted.

This error is due to /usr/opt/reliant/bin does not have enough space.

error: %preun(FJSVhvgd-4.2.3-4.x86_64) scriptlet failed, exit status 1

 

经搜索,其解决方法为加 --noscripts 标记来删除RPM。

--noscripts 相当于 --nopre –nopost(no post install) --nopreun --nopostun(no post uninstall).

 

[root@bx15 ~]# rpm -e FJSVhvgd-4.2.3-4

Error: hvenv.local modification aborted.

This error is due to /usr/opt/reliant/bin does not have enough space.

error: %preun(FJSVhvgd-4.2.3-4.x86_64) scriptlet failed, exit status 1

[root@bx15 ~]# rpm -e --nopreun FJSVhvgd-4.2.3-4

/var/tmp/rpm-tmp.93148: line 72: /usr/opt/reliant/bin/hvenv.local: No such file or directory

Unable to rewrite hvenv.local with the contents of temp file created.

[root@bx15 ~]# rpm -e FJSVhvgd-4.2.3-4

error: package FJSVhvgd-4.2.3-4 is not installed

end

若要查看与RPM关联的scripts,使用--script查询RPM包。
$rpm -q --scripts package
卸载时,若系统里有同一程序的多个安装版本要一起删除,可使用--allmatches标记,如
$ rpm -e --noscripts --allmatches 要卸载的包

 

ssh远程无密码登录设置,多节点之间无密码登陆

[root@node1 ~]# ssh-keygen -t rsa

!所有节点执行这个命令,将所有的公钥合并到文件authorized_keys中,

!放到每个节点的.ssh目录下即可=》实现互相无密码访问。

!不需要输入密码,但是known_hosts文件还是会要求选择是否连接,并且保存到该文件(第一次连接的时候,可以设置不使用known_hosts文件)。

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase): =》如果输入密码,scp动作的时候就会要求输入密码。

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

b5:8f:b6:b7:1e:56:47:69:87:69:78:93:29:a2:4e:bc root@node1

[root@node1 ~]# ll /root/.ssh/id*

-rw------- 1 root root 1675 Aug 17 09:27 /root/.ssh/id_rsa

-rw-r--r-- 1 root root 392 Aug 17 09:27 /root/.ssh/id_rsa.pub

[root@node1 ~]# scp /root/.ssh/id_rsa.pub root@193.168.140.185:/root/.ssh/authorized_keys

root@193.168.140.185's password:

id_rsa.pub

[root@node1 .ssh]# cat id_rsa

-----BEGIN RSA PRIVATE KEY-----

MIIEoQIBAAKCAQEApNnws0T9hyQ6DU0l/d6FrWXqH9HGPfgoP5NwVrZhqTBxnaAX

89sgGcJqSC5W+Cb/9A+fza3Mm2EkUxFaqL1DbMo/9dggSM9evg6GnClhKDkDLhca

gxkoihtne2D5cFpDbO8cIdPu9Iep9DRVTjUjWRQZnvTedzG8VtNpBM8sKpGIvlGY

y7bkSx9iNUbhBtoIyvaurPeexBAQmk5ltgimF/7NFqYChEoZR2VBTOae//pZR2Mc

kEEGVjUVGylf3ENS1DHWIN4tjF24YFJ129GukRivbYRgEGOVcXwWUssafSf4j51m

Pt1oQs7+Qu4h33+t9SxW3wJEIkp46U7TJL5/gwIBIwKCAQAS1xQxvr3jjxyTzk18

GW5c9bRbaG5te3JQaJ8f2lRN2aaVq+V69HiyfJ5upjXTN6g5Jltn9psKcYB+haP2

BwBkNF8UyD40NPTihVE2ayEL6UIxJzY63k3GpAvTlg3g9F96KfSWJtl7CDCuMd3d

DWMgH43mR97pDP+U5PYPLZ6lx05QtrC4gIZAQLo1hmt+uB7Wdh9qYgsT8hxdQPfX

TuzY/QhFksOitmXodc5sXI9wZ5XcK9CZPR/HGkBfK98U644SRz3stzj9HHk1n/XU

VNP21QM99l78JWtcYZXWN9LLHSoniUqNdI85uEH3eDl+D3YC4DDD2WC9dU1TYawF

JOErAoGBANkN+gkUomG+vyKthSsY61KbOH7ROBrmqoomCtVtVM99qAXRPFwaTA9B

Fmzk5UbNjIxrnX9cRSEiKPAqjEjebDdWQ9a74SHVNX+TaOLDFYoaPcZfvzSWryRQ

JnvT6zQjefJKq2XShHNy5fUmxiS36WOLGzqSNzIGpMHeU3X8xwUVAoGBAMJuGQVo

r+vaKeIzaYlZI6hbNJz45aLu3w5ESxeswT4vsL7kpXaaQg5USAYz13Ea422VRjv3

JQ8l5nGv3TcGygBd/qGNudkQbxQ3sewW1eXHEwyvmWxbbQW4/7tsd3HobtVrALQW

nQ+W3MfmzAYYjwHQ53GbHQOh41JxZLv69Mg3AoGADGcy2/KM76R/81pfYYxlN+uc

1Av0k9KqqM75TgY/XFBSvoD8IoUo6u3GxGTZ5snqxjII//ak3VJovURCh9IyEcpq

RsjoSxN/ZmAx4RJ2QmfmRdmV5b93uO6jHQTLnJRQHHlLn2sdgvCfbRgolGJH2c1v

RSztNg8CGbTu04rJi0MCgYEAt1HdE7p5+6HPuASWtLMhnrxkzoRGOolzOVZVbhfp

ZoS8lrpS3YohBjI1R6042FsuNB8HtOG1OisMedGzUSOohADaI0sc8TthatVtPa8h

cj9bGpbvve/NMUgHD8yrIkGNEl2S8vC/+MFxFEACMaIgb20x/WZdL09+j498PDXC

OR0CgYA1FOF2YYM49KRUH5rL7cVWYHs3VUsDguVFV7LOJmHlipEZTCJ0QKc8alVI

otqnEdnPT8fQqLibcIJY4seDBfaG0nmjl4JMg6enUDjk9CeZquNJPsc6iyUNstnD

cra7euafSy/g4wRwQKdEvL/Tbz0nl5+RYinqZCOgSjh6ODhExQ==

-----END RSA PRIVATE KEY-----

[root@node1 .ssh]# cat id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApNnws0T9hyQ6DU0l/d6FrWXqH9HGPfgoP5NwVrZhqTBxnaAX89sgGcJqSC5W+Cb/9A+fza3Mm2EkUxFaqL1DbMo/9dggSM9evg6GnClhKDkDLhcagxkoihtne2D5cFpDbO8cIdPu9Iep9DRVTjUjWRQZnvTedzG8VtNpBM8sKpGIvlGYy7bkSx9iNUbhBtoIyvaurPeexBAQmk5ltgimF/7NFqYChEoZR2VBTOae//pZR2MckEEGVjUVGylf3ENS1DHWIN4tjF24YFJ129GukRivbYRgEGOVcXwWUssafSf4j51mPt1oQs7+Qu4h33+t9SxW3wJEIkp46U7TJL5/gw== root@node1

[root@node1 .ssh]# cat known_hosts

193.168.140.99 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAs+afXo9zPfOBbTj044/xY/8bPtI7CSa2BUtfDEeIacnTw4yQCBObHekOhxZkX+hxtAESk0VslIZlgmU+S+FAxviVh7n/c8eDNqFs6XN8izsFeyGfcZ+onO9ydC/iz2Tew5mUpVLxwTROr04QvpfXV1b1y5xvMJMFwzAVyXti2XMCW7/dDVikFNkAdwM0/o4+2SyoXCIObBoj4yHS6DgXnmie9PI7NmVcWI1macARlpircQ5gD4FtFZPSlUdxVzJeJWqhCa3nvX56W9ip0ouS9xGLXhWhpP0WxE1aHjFJ22uy6acu5Ig4aJLpaQH8Hk0+n2d55xNr7pXzN38EF46RbQ==

193.168.141.164 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvC0AJvtebN96RU2FL31WJZ8jYXV/JlPUBiopq+5Idl1gaMIOCVDCjcxddv4+vp7mrTz8v1g/m9uz8lghkDdQnUKHFnwYNJMZ1e7mySTpvBWmQuGWD2EY0YUdZh1s79V6bqE+lUdYbv8k6kdt/ZjHiKFWRoKSVXythfZ265IjGuqt8G+YreJE9b51XPPQEyq7g48KrYg/jyyGXsQAfC2tRLmlgCe3RmgytPo+jGR50v9YJb27/hPAmXf7piR43WB1i3sCkje7pXK402k1fILhGEGupjodk64K18XSY/NzTbnYTFP3ul22cXuTzXuL+dmGLNtFZAD9QLSSrJiL4phz1w==

193.168.140.185 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApqrSAycDgvrq9TgxK4pc8O6Zq/Wn0q2GejpxLIHFuaOeimOZBeGmBF7mrd6JregeoAyudZsggzguc1stE8OXAEJB5PbMmeKQBNo6c2QYg+GZaPqVli6OUeRKwLXovBx5tgkzLMbHgQ+2ituRG1Tjqjd9ltcRv4DzB8kgJBSwOXhsNHfjgMezcKyZXp+Zfk4h/7S6FfyVdOek2tNbZV2QSFuU9bz4e5QfLr+v2b2y48epO91jIvOAjRWvO9kyf1zCvZGdwWTwic20UMwDHt8jO85t17ysx+vRFn1UKER3px+3jmV90u9hfBvZMXZHJun0IVj+spxnZdcvVCSJNoI4iw==

[root@node1 .ssh]#

私钥保留在本地,保存私钥,登陆的时候需要用私钥登陆.服务器用公钥验证,通过则允许自己登陆.

公钥拷贝到远程机器(用于鉴权,如果对方提供了正确的私钥,则允许对方连接到自己)

 

执行scp命令的时候,使用本地的私钥去配对,配对成功则允许执行操作。与known_hosts文件无关。

要登陆谁,就把公钥给谁(让对方允许自己登陆),私钥自己留着就行了。

scp known_hosts文件记录了第一次连接时的选择,但是没有密钥信息:

[root@node1 ~]# scp pcl.sh root@193.168.141.164:/root/

The authenticity of host '193.168.141.164 (193.168.141.164)' can't be established.

RSA key fingerprint is 5a:92:3b:aa:51:d9:a4:6d:cb:5a:ea:31:25:cb:a5:ed.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '193.168.141.164' (RSA) to the list of known hosts.

pcl.sh 100% 5514 5.4KB/s 00:00

!已经设置了无密码登陆,选择yes以后,就不用再输入密码了。

[root@node1 ~]# ll /root/.ssh/known_hosts

-rw-r--r-- 1 root root 397 Aug 17 09:54 /root/.ssh/known_hosts

[root@node1 ~]# cat /root/.ssh/known_hosts

193.168.141.164 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvC0AJvtebN96RU2FL31WJZ8jYXV/JlPUBiopq+5Idl1gaMIOCVDCjcxddv4+vp7mrTz8v1g/m9uz8lghkDdQnUKHFnwYNJMZ1e7mySTpvBWmQuGWD2EY0YUdZh1s79V6bqE+lUdYbv8k6kdt/ZjHiKFWRoKSVXythfZ265IjGuqt8G+YreJE9b51XPPQEyq7g48KrYg/jyyGXsQAfC2tRLmlgCe3RmgytPo+jGR50v9YJb27/hPAmXf7piR43WB1i3sCkje7pXK402k1fILhGEGupjodk64K18XSY/NzTbnYTFP3ul22cXuTzXuL+dmGLNtFZAD9QLSSrJiL4phz1w==

[root@node1 ~]#

!每次连接都需要公钥和私钥(即密码),但是ssh-keygen将私钥保存到文件中,并且设置为空,无密码。

!autorized_keys和known_hosts文件,是什么关系。

私钥和公钥

 

[root@node3 config]# scp bashrc $NODE4:`pwd`
The authenticity of host '193.168.140.185 (193.168.140.185)' can't be established.
RSA key fingerprint is 22:bb:94:97:12:0e:24:1a:5f:55:ed:9d:4f:89:d7:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '193.168.140.185' (RSA) to the list of known hosts.
bashrc  

[root@node1 crm_tool]# echo $NODE3
root@193.168.141.164

=>known_hosts和公钥,不是同一个东西.

 

ssh选项

等待远程命令结束,即刻返回:

ssh -S none root@192.168.251.93 -f /sbin/shutdown -r 0

scp能自动创建远程目录吗?

远程root账户,ssh连接

必须禁用防火墙iptables,或者修改iptables的配置文件。

[root@node1 ~]# chkconfig --level 12345 iptables off

[root@node1 ~]# chkconfig --list iptables

iptables            0:off     1:off     2:off     3:off     4:off     5:off     6:off

[root@node1 ~]# service iptables stop

禁用selinux:

配置远程机器上的sshd服务,允许远程登陆:

[root@node1 data]# cat /etc/ssh/sshd_config | grep PermitRootLogin

PermitRootLogin yes

# "PermitRootLogin without-password". If you just want the PAM account and

[root@node1 data]#

end

 

时区设置和多台机器时间同步

设置时区-推荐使用timeconfig

tzselect

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

timeconfig 图形界面,方便使用,rhel用

 

修改时区后,修改时间

date -s 11/03/2009 月日年

date –s 10:50:50 时分秒

hwclock –w 将当前时间写入bios保存,避免重启丢失时间。

 

查看当前时区

date –R

[root@node1 ~]# date -R
Thu, 20 Aug 2015 10:54:11 +0800 =》数字与实际的时区不一定一致,timeconfig更直观准确。但是实际的时间可以看出时区是否一致。
[root@node1 ~]# date
Thu Aug 20 10:54:13 CST 2015
[root@node1 ~]#

 

本地时间服务器设置

 

 

显示文件的指定行号范围内的内容

[root@node1 yum.repos.d]# sed -n '780,790p' /usr/lib/python2.4/site-packages/yum/yumRepo.py

copy_local = copy_local,

reget = reget,

failure_callback = self.failure_obj,

interrupt_callback=self.interrupt_callback,

checkfunc=checkfunc,

**ugopts)

remote = url + '/' + relative

try:

result = ug.urlgrab(misc.to_utf8(remote), local,

[root@node1 yum.repos.d]#

[root@node1 yum.repos.d]# sed -n '780,790p' /usr/lib/python2.4/site-packages/yum/yumRepo.py

copy_local = copy_local,

reget = reget,

failure_callback = self.failure_obj,

interrupt_callback=self.interrupt_callback,

checkfunc=checkfunc,

**ugopts)

remote = '/mnt/cdrom' + '/' + relative

try:

result = ug.urlgrab(misc.to_utf8(remote), local,

[root@node1 yum.repos.d]#

!awk '{print NR"\t"$0}'也可以,太麻烦了。更新到博客园上去。

 

rhel yum本地光驱作源安装软件(比较麻烦,最好安装的时候把需要的软件安装完全)

睡不着, 写个简单的教程, 使用 RHEL 6.5 DVD 做本地 YUM 源

适用于 RHEL 6.5 32位 和 64位 系统.

首先从 Red Hat 官网下载 DVD

rhel-server-6.5-i386-dvd.iso

MD5: 04A1FA06A6B7E70CD586535EEA83C0EF

rhel-server-6.5-x86_64-dvd.iso

MD5: A84D4D9EDDB36FB417832166CD10A4C2

复制代码

接着安装系统.

系统安装完之后, 就是配置 YUM 源了.

我使用的是 VMware 虚拟机, 将 DVD 设置为连接, 进入系统后, 系统会将DVD挂载在 "/media/RHEL_6.5 x86_64 Disc 1" 目录.

卸载先:

umount /media/RHEL_6.5\ x86_64\ Disc\ 1/

复制代码

创建相关目录:

mkdir /mnt/cdrom

复制代码

然后将DVD挂载到 /mnt/cdrom 目录:

mount /dev/cdrom /mnt/cdrom

复制代码

如果使用 iso 文件, 先将 iso 上传到服务器, 例如上传到以下目录 /data/src/rhel/6/rhel-server-6.5-x86_64-dvd.iso , 使用以下命令挂载DVD iso

mount -o loop /data/src/rhel/6/rhel-server-6.5-x86_64-dvd.iso /mnt/cdrom

复制代码

生成 YUM 源文件:

cat > /etc/yum.repos.d/rhel6.repo <<EOF

[rhel6]

name=rhel6

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

EOF

复制代码

sed -i "s#remote = url + '/' + relative#remote = '/mnt/cdrom' + '/' + relative#g" /usr/lib/python2.6/site-packages/yum/yumRepo.py

复制代码

导入rpm的签名信息

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

复制代码

清除缓存

yum clean all

复制代码

如果出现以下错误提示

[root@localhost ~]# yum clean all

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Existing lock /var/run/yum.pid: another copy is running as pid 2267.

Another app is currently holding the yum lock; waiting for it to exit...

The other application is: PackageKit

Memory : 48 M RSS (365 MB VSZ)

Started: Sat Nov 23 01:28:11 2013 - 10:00 ago

State : Sleeping, pid: 2267

先 Kill 掉 YUM

kill -9 2267

复制代码

然后再

yum clean all

复制代码

至此, 本地源配置完毕.

yum本地光驱作源配置

rhel5:

[root@localhost yum.repos.d]# cat rhel5.repo (配置好这个文件就可以了)

[rhel-dvd-server]

name=Red Hat Enterprise Linux - DVD Server Repository

baseurl=file:///home/samba/yum_source_iso/Server/

enabled=1

gpgkey=file:///home/samba/yum_source_iso/RPM-GPG-KEY-redhat-release

gpgcheck=1

[rhel5]

name=rhel5

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

rhel6:

rhel7:

!将光驱内容mount后拷贝到机器上去。

[root@node3 ~]# yum install smb

Loaded plugins: product-id, security, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Setting up Install Process

No package smb available.

Nothing to do

!使用官方软件源,没有注册的话,报错。

[root@node1 yum.repos.d]# rpm -qa | grep yum

yum-security-1.1.16-21.el5

yum-metadata-parser-1.1.2-4.el5

yum-updatesd-0.9-6.el5_10

yum-3.2.22-40.el5

yum-rhn-plugin-0.5.4.1-7.el5

[root@node1 yum.repos.d]# rpm -qa | grep yum | xargs rpm -e --nodeps

不检查依赖,直接删除rpm包

卸载系统安装的yum。

安装自己下载yum。

将RHEL自带的yum替换成对应版本的CentOS的yum包。

# wget http://mirrors.163.com/centos/6.5/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm

# wget http://mirrors.163.com/centos/6.5/os/i386/Packages/yum-3.2.29-40.el6.centos.noarch.rpm

# wget http://mirrors.163.com/centos/6.5/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-14.el6.noarch

安装yum软件包

注意:单个的安装包可能会依赖其它包(例如yum和yum-fastestmirror会相互依赖),所以我们可以把所有这些包放在一起,用一行命令将它们同时安装即可:

1

# rpm -ivh yum-metadata-parser-1.1.2-16.el6.i686.rpm yum-3.2.29-40.el6.centos.noarch.rpm yum-plugin-fast

更换yum源。使用163的源

# cd /etc/yum.repos.d/

# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

# vi CentOS6-Base-163.repo

编辑文件,把文件里面的$releasever全部替换为版本号,即6.5 最后保存!

yum clean all 清楚缓存

yum makecache 重建缓存

yum update 更新系统

yum upgrade 大规模更新系统

mkdir可以级联创建目录,但是touch是基于文件的,应该不能把,除非添加了选项:

[root@node1 yum.repos.d]# mkdir -p /media/Server/repodata/

[root@node1 yum.repos.d]# touch /media/Server/repodata/repomd.xml

df,du文件管理

du -h --max-depth=1

df –h

 

mount远程磁盘的命令(需要root权限):

[root@localhost wanglc]#

mount.cifs //10.167.129.95/pcl/~wanglc /home/wanglc/95/ -o username=pcl,uid=504,gid=502,file_mode=0755,dir_mode=0755

Password: (wlch:此处需要输入远程磁盘的访问密码,权限是mode与运算之后的结果。)

[root@localhost wanglc]# ll 95/

total 8075808

drwxr-xr-x 1 wanglc crm 0 Feb 18 10:54 15????????????????????????

drwxr-xr-x 1 wanglc crm 0 Sep 10 2013 CRM_12

drwxr-xr-x 1 wanglc crm 0 Feb 14 18:13 CRM_13

drwxr-xr-x 1 wanglc crm 0 Nov 15 17:16 CRM_14

drwxr-xr-x 1 wanglc crm 0 Mar 17 13:09 CRM_15

drwxr-xr-x 1 wanglc crm 0 Feb 18 13:21 DRIVER_KIT_for_rhel5.9_Intel64

drwxr-xr-x 1 wanglc crm 0 Feb 19 13:42 Work(Security)

-rwxr-xr-x 1 wanglc crm 8269627392 Oct 23 2012 serverview.iso

drwxr-xr-x 1 wanglc crm 0 Feb 18 14:48 ??????????????????

drwxr-xr-x 1 wanglc crm 0 Mar 10 13:09 ???????????????ct-st

不要mount到自己的用户目录下,因为自己的用户目录下有很多配置文件,mount的内容,会覆盖自己家目录中的配置文件,导致配置失效(虽然配置不会丢失,umount以后,又恢复了)。

新建一个mount目录,然后再执行以上mount命令。

rsync和远程mount实现同步服务器(结合例行管理程序crontab,定期备份,每15min)

[root@localhost ~]# chkconfig --list rsync

rsync on

[root@localhost ~]#

rsync的执行程序怎么绑定的?

crontab例行程序,每过15min执行一次mirror.sh脚本。

[root@localhost ~]# cat mirror.sh

#!/bin/sh -e

num=`ls /media/vpdc-origin/ | wc -l`

if [ $num -le 0 ]; then

echo '// ERROR: /media/vpdc-orign is empty.' >> /var/log/rsync.out

exit 1

fi

if pgrep -f 'rsync ' > /dev/null 2>&1; then # 有一个未完成的 rsync 正在同步

echo '// continue' >> /var/log/rsync.out

exit 0

fi

###################################################################

# Q: 为什么不直接从 origin 同步到 master,为什么要通过 agent 中转?

# A: 为了调整 master 文件的默认权限(只读)。

#

# Q: 为什么要禁止 master 文件的可写权限?

# A: 避免在镜像同步周期中,文件内容被误操作导致镜像本身失去意义。

#

# Q: 为什么要 -b 备份?

# A: 发生过VPDC被误更新(主要是FNST)的意外,导致原始文件丢失。

###################################################################

if [ x"$1" = "xsync" ]; then # 每15分钟做一次镜像

echo '/**' >> /var/log/rsync.out 2>&1

LANG=zh_CN.UTF-8 rsync -azuvPh --delete --perms --exclude-from='/root/mirror.ignore' /media/vpdc-origin/ /media/vpdc-agent/ >> /var/log/rsync.out 2>&1

echo ' *' >> /var/log/rsync.out 2>&1

LANG=zh_CN.UTF-8 rsync -azuvPh -b --delete --chmod=Dug=rwx,Fug=r --exclude-from='/root/mirror.ignore' /media/vpdc-agent/ /media/vpdc-master/ >> /var/log/rsync.out 2>&1

echo ' */' >> /var/log/rsync.out 2>&1

exit 0

fi

if [ x"$1" = "xsafe" ]; then # 每天做一次安全备份

# 移到公司文件服务器后可无视备份

exit 0

fi

[root@localhost ~]#

[root@localhost 24.43A20_RHEL5_Intel64]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

93G 78G 11G 89% /

/dev/sda1 99M 12M 82M 13% /boot

tmpfs 1.5G 0 1.5G 0% /dev/shm

//10.124.230.36/252fns/pub/

1.9T 1.4T 427G 77% /media/vpdc-origin

//10.167.129.95/pcl/vpdc-master

5.0T 4.6T 503G 91% /media/vpdc-master

[root@localhost 24.43A20_RHEL5_Intel64]# mount

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

/dev/sda1 on /boot type ext3 (rw)

tmpfs on /dev/shm type tmpfs (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

//10.124.230.36/252fns/pub/ on /media/vpdc-origin type cifs (ro,mand)

//10.167.129.95/pcl/vpdc-master on /media/vpdc-master type cifs (rw,mand)

nfsd on /proc/fs/nfsd type nfsd (rw)

[root@localhost 24.43A20_RHEL5_Intel64]#

!远程磁盘虽然mount到本地了,但是读写还是通过网络,速度比较慢。

 

sed常用操作

[seesea@UC ~]$ sed -n '/{/,/}/{=;p}' file | sed '/^[0-9]\+$/{N; s/\n/\t/}'

1 function() {

2 tobedeleted

3 test2

4 test3

5 test4

6 }

9 function2() {

10 temp1

11 temp2

12 temp3

13 temp4

14 }

 

sed直接修改文件,s///

[root@node4 grub]# sed -i "s/default=1/default=0/" grub.conf

[root@node4 grub]# grep -n2 default grub.conf =》显示default上下两行。
8-#          initrd /initrd-version.img
9-#boot=/dev/sda
10:default=0
11-timeout=5
12-splashimage=(hd0,0)/grub/splash.xpm.gz

 

SVN

=>svn错误

405 Mathod Not Allowed

网络不好,提交内容多的时候,经常报这个错误,过一段时间好像可以自动恢复了。

应该是svn自己库同步的问题。其他人已经可以check产物了。

!如果提交产物与库中的其他产物不冲突,就不需要加锁。网络好的时候,再提交。

cp拷贝软连接之后,还是软连接,如果要备份,应该拷贝实体rpm包(-a选项没有影响)

[root@node4 old_rpm]# ls

FJSVclrms-4.3.0-05.rhel5_i386.rpm FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 old_rpm]# ll

total 0

lrwxrwxrwx 1 root root 38 Aug 18 23:18 FJSVclrms-4.3.0-05.rhel5_i386.rpm -> ../../../pkgs/FJSVclrms.rhel5_i386.rpm

lrwxrwxrwx 1 root root 38 Aug 18 23:17 FJSVclrwz-4.3.0-05.rhel5_i386.rpm -> ../../../pkgs/FJSVclrwz.rhel5_i386.rpm

cp的时候修改名字,添加-a选项,不影响文件md5值。

[root@node4 cd]# cp -a ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm ~/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 cd]# md5sum ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

842dc05e6e04284429d059422cf5c581 ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

[root@node4 cd]# ll ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

-rw-r--r-- 1 root root 85335 May 13 2011 ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

[root@node4 cd]# md5sum ~/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

842dc05e6e04284429d059422cf5c581 /root/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 cd]# ll ~/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

-rw-r--r-- 1 root root 85335 May 13 2011 /root/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 cd]#

=>update的时候,提示有文件冲突.

在红色字体上,右键,选择冲突解决方法,选择"标记为已解决"后,冲突提示消失.

clip_image001

右键选择 using theirs 或者 using mines,都是提示下面的错误:

clip_image002

有冲突的产物,文件名,右键,选择"edit conflicts"

clip_image003

提交状态:改增删.

clip_image004

=>svn基本用法:

删除产物,修改产物名称,提交修改(注意不要提交别人的修改).

 

 

svn错误

405 Mathod Not Allowed

网络不好,提交内容多的时候,经常报这个错误,过一段时间好像可以自动恢复了。

应该是svn自己库同步的问题。其他人已经可以check产物了。

!如果提交产物与库中的其他产物不冲突,就不需要加锁。网络好的时候,再提交。

cp拷贝软连接之后,还是软连接,如果要备份,应该拷贝实体rpm包(-a选项没有影响)

[root@node4 old_rpm]# ls

FJSVclrms-4.3.0-05.rhel5_i386.rpm FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 old_rpm]# ll

total 0

lrwxrwxrwx 1 root root 38 Aug 18 23:18 FJSVclrms-4.3.0-05.rhel5_i386.rpm -> ../../../pkgs/FJSVclrms.rhel5_i386.rpm

lrwxrwxrwx 1 root root 38 Aug 18 23:17 FJSVclrwz-4.3.0-05.rhel5_i386.rpm -> ../../../pkgs/FJSVclrwz.rhel5_i386.rpm

cp的时候修改名字,添加-a选项,不影响文件md5值。

[root@node4 cd]# cp -a ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm ~/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 cd]# md5sum ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

842dc05e6e04284429d059422cf5c581 ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

[root@node4 cd]# ll ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

-rw-r--r-- 1 root root 85335 May 13 2011 ./Linux/pkgs/FJSVclrwz.rhel5_i386.rpm

[root@node4 cd]# md5sum ~/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

842dc05e6e04284429d059422cf5c581 /root/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 cd]# ll ~/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

-rw-r--r-- 1 root root 85335 May 13 2011 /root/old_rpm/FJSVclrwz-4.3.0-05.rhel5_i386.rpm

[root@node4 cd]#

find只查看文件

[root@sj_x861 CVS_SRC]# find -type f -name clexec

./CL/command/clexec/clexec

 

rhel禁用IPv6

1. IPv6機能を以下の手順で無効化します。

openibパッケージがインストールされているかを確認します。

# rpm -qa openib

インストールされている場合、/etc/ofed/openib.confファイルを編集します。

# vi /etc/ofed/openib.conf

IPOIB_LOAD=no

SDP_LOAD=no

 

/etc/sysconfig/networkファイルを編集します。

"NETWORKING_IPV6"の記述がない場合には、追記します。

# vi /etc/sysconfig/network

NETWORKING_IPV6=no

 

/etc/modprobe.confファイルを編集します。

# vi /etc/modprobe.conf

alias net-pf-10 off

options ipv6 disable=1

 

服务配置,单用户启动samba服务:

[root@node4 modules]# chkconfig --level 1 smb on
[root@node4 modules]# chkconfig --list smb
smb             0:off   1:on    2:on    3:on    4:on    5:on    6:off
[root@node4 modules]# service smb restart
Shutting down SMB services:                                [FAILED]
Shutting down NMB services:                                [FAILED]
Starting SMB services:                                     [  OK  ]
Starting NMB services:                                     [  OK  ]  =》nmb正常启动。
[root@node4 modules]#
[root@node4 modules]# ls
2.6.18-398.el5
[root@node4 modules]# chkconfig --list nmb
error reading information on service nmb: No such file or directory

 

单用户模式ssh连接远程主机(需要开始单用户下的网络和sshd服务)

[root@node3 ~]# chkconfig --list network
network         0:off   1:on    2:on    3:on    4:on    5:on    6:off
[root@node3 ~]# chkconfig --list sshd
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@node3 ~]# chkconfig --level 1 sshd on
[root@node3 ~]# chkconfig --list sshd
sshd            0:off   1:on    2:on    3:on    4:on    5:on    6:off
[root@node3 ~]#

 

有些安装包需要PAE内核支持(PAE支持大内存,32位系统有时候需要安装,内存大的话,最好直接使用PAE内核)

PAE内核在Linux的安装镜像中有,两个rpm包,找到安装,启动PAE内核即可.

[root@node4 ~]# uname -a
Linux node4 2.6.18-398.el5 #1 SMP Tue Aug 12 06:26:57 EDT 2014 i686 i686 i386 GNU/Linux
[root@node3 ~]# cd /lib/modules/
[root@node3 modules]# ls
2.6.18-398.el5

[root@node2 ~]# uname -a
Linux node2 2.6.18-398.el5PAE #1 SMP Tue Aug 12 06:31:42 EDT 2014 i686 i686 i386 GNU/Linux
[root@node1 ~]# cd /lib/modules/
[root@node1 modules]# ls
2.6.18-398.el5  2.6.18-398.el5PAE  2.6.18-53.el5PAE

[root@node1 ~]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-398.el5PAE)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-398.el5PAE ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-398.el5PAE.img
title Red Hat Enterprise Linux Server (2.6.18-398.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-398.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-398.el5.img
[root@node1 ~]#

 

[root@node4 cd]# find -type f -name "*PAE*"
./ClusterStorage/kmod-cmirror-PAE-0.1.22-3.el5.i686.rpm
./ClusterStorage/kmod-gfs-PAE-0.1.34-22.el5.i686.rpm
./ClusterStorage/kmod-gnbd-PAE-0.1.5-2.el5.i686.rpm
./Server/kernel-PAE-2.6.18-398.el5.i686.rpm
./Server/kernel-PAE-devel-2.6.18-398.el5.i686.rpm
[root@node4 cd]# rpm -ivh ./Server/kernel-PAE-2.6.18-398.el5.i686.rpm
warning: ./Server/kernel-PAE-2.6.18-398.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:kernel-PAE             ########################################### [100%]
[root@node4 cd]# rpm -ivh ./Server/kernel-PAE-devel-2.6.18-398.el5.i686.rpm
warning: ./Server/kernel-PAE-devel-2.6.18-398.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:kernel-PAE-devel       ########################################### [100%]
[root@node4 cd]#
[root@node4 cd]#
[root@node4 cd]# cd /lib/modules/
[root@node4 modules]# ls
2.6.18-398.el5  2.6.18-398.el5PAE

[root@node4 grub]# sed -i "s/default=1/default=0/" grub.conf =>sed直接修改文件,s///
[root@node4 grub]# grep -n2 default grub.conf =》显示default上下两行。
8-#          initrd /initrd-version.img
9-#boot=/dev/sda
10:default=0
11-timeout=5
12-splashimage=(hd0,0)/grub/splash.xpm.gz
[root@node4 grub]#

 

关闭linux的邮件服务

anaconda-ks.cfg  cd               crm_tool           install.log  old_rpm             pcl.sh  songjie  yum_source_iso
You have new mail in /var/spool/mail/root  =>关闭,就不会再提示.
[root@node4 ~]# service sendmail stop
Shutting down sm-client:                                   [  OK  ]
Shutting down sendmail:                                    [  OK  ]
[root@node4 ~]# chkconfig --list sendmail
sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@node4 ~]# chkconfig sendmail off
[root@node4 ~]# chkconfig --list sendmail
sendmail        0:off   1:off   2:off   3:off   4:off   5:off   6:off
[root@node4 ~]#

 

 

 

 

rsh远程shell命令 

 

 

 

静态IP配置

 

 

linux的diff和Beyond Compare:

[root@node1 network-scripts]# diff -i ifcfg-eth3 ifcfg-eth2
1,2c1,2
< # Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE]
< DEVICE=eth3
---
> # Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
> DEVICE=eth2
3a4
> HWADDR=00:0C:29:15:8F:06   =>作为增加的一行 =>Beyond compare 的比较结果,更舒服一些
5c6
< HWADDR=00:0c:29:15:8f:24   
---
> HOTPLUG=no
[root@node1 network-scripts]#

 

 

FQ-创建自由网络-开发者必备(请遵守国家法律)

最简单的当然购买账号,直接用客户端进行登陆,不需要自己任何设置,也不需要购买海外服务器.

推荐:http://v.uuu.net/ (=>个人使用下来比较方便,网速也不错)

注册,购买,下载客户端,连接即可,每次登陆还免费赠送1个小时.

ubuntu系统,使用系统自带的vpn客户端,配置好账号连接即可.

 

其他方法,可以申请一台海外的VPS搭建VPN服务器,或者用nginx搭建反向代理服务器,还可以用ssh服务进行代理。

##ssh服务进行代理-ssh隧道加密技术

=>ssh隧道的基本理论

客户端(本机)与服务器的22号端口建立ssh连接以后,客户端的请求数据通过ssh隧道加密发送到服务器,然后再通过ssh服务器的80端口去访问网络数据.

实现穿墙并且访问google等被墙,但是对开发者来说又特别重要的网站.

ssh服务器必须能够被连接,必须提供ssh隧道功能,必须能够访问墙外的网络.

我们找到了一个同时满足上面三点要求的SSH服务器提供商,而且是免费的。就是www.cjb.net.(速度比较慢,免费啊,可以自己购买一台)

 

客户端不直接跟服务器的80端口建立一个连接通道,反而是和服务器的22端口建立一个连接通道,但是在这个22端口的连接通道中,建立一个子连接通道,

这个子连接通道是用来访问服务器的80端口。也就是说,在22号端口上建立的连接,传输的数据不是22号端口本来的数据,而是与服务器的80端口通信的一整条的连接通道

22号端口和80号端口都是属于同一个服务器的,实际上SSH隧道功能里面,我们的目的端口(此处是80端口)完全可以跟22号端口不是属于同一个主机,这意味着什么呢?

这意味着,我们能通过连接主机A的22号端口,所实现的功能是访问另外一台主机B的80端口!!这是什么?这不就是相当于把A主机当作代理服务器么???很明显了吧。

 

=>购买海外主机:

推荐AWS的云服务器,注册,可以申请免费使用一年.

尽量选择日本,韩国或者新加坡的主机,美国主机速度可能比较慢.

 

=>windows平台设置ssh隧道

在本地机器上开启ssh服务.

windows使用ssh客户端,xshell,putty等设置ssh转发服务,并且配置好端口.

建立到代理服务器的ssh隧道.

 

=>浏览器插件设置

在浏览器中安装插件,例如chrome安装switchy sharp

配置switchy sharp

IP就是127.0.0.1了,端口就是自己设置的端口,协议选socks5.

完成以上步骤后,就可以使用浏览器访问google了.

 

=>ubuntu系统(基于命令行操作)设置ssh隧道

如果是命令行界面的,因为没有可视化的代理插件,需要安装命令行的代理工具:

1.sudo apt-get install tsocks python-pip

修改/etc/tsocks.conf server = 127.0.0.1 端口可以不修改,用1080就好。

2.sudo pip install gevent m2crypto shadowsocks

然后命令行运行:

ssh -qTNf -D 127.0.0.1:1080 ubuntu@55.68.27.121

因为tsocks的默认端口就是1080,55.68.27.121就是我的亚马逊云主机.

每一个需要FQ的命令行前加tsocks就可以了, 比如要下载代码tsocks git clone ssh://hzxww@review.openstack.org:29418/openstack-dev/devstack,就可以下载了。

tsocks会将这个请求转发给本地127.0.0.1:1080端口,然而我们对这个端口做了转发,转发到55.68.27.121上去了,所以这个下载代码请求变成远程亚马逊主机的请求了,它会去请求,

然后接受到的数据转发回来,当然,它自己不会保存数据,不用担心代理服务器会满掉。

 

服务器端: 只要运行sshd就可以了,不需要特别的设置。
客户端:

  1. ssh -fND localhost:{port} {uname}@{server-addr},这条命令让ssh监听localhost上的{port}端口,并把收到的访问请求转发给{server-addr}
  2. curl -v --socks5 localhost:{port} "http://www.baidu.com",注意用ssh搭建的代理是socks代理,不是http代理。如果尝试用http代理的方式使用ssh搭建的代理,保证会让你很郁闷!
    也可以在Firefox里面使用socks代理。

 

方法很简单,几行命令搞定。主要原理就是在你的VPS上建一个受限的VPS用户,此用户仅作SSH上网用,对ROOT账户或安装的VPN没有丝毫影响。
添加账号方法
1、Putty登录 VPS
输入以下命令:
SSH root@123.123.123.123
记得将 123.123.123.123″ 替换成你VPS的IP地址。
2、创建一个用户组
输入以下命令:
groupadd username
你可以将 username 替换成任意你容易记住名字。
3、创建受限用户
输入以下命令:
useradd -d /home/username -m -g username -s /bin/false username
4、为新用户设置密码
输入以下命令:
passwd username
回车,输入密码,回车,再输入一次密码,回车。

 

http://www.vpnsshproxy.com/cesu/

http://blog.chinaunix.net/uid-23823046-id-2657006.html  =>公司临时用一下,速度慢

http://www.uudaili.org/index.html

http://www.freehao123.com/amazon-aws/

 

https://aws.amazon.com/cn/free/

 

 

shutdown关机操作

shutdown是通过init 0来执行关机动作的,正式关机前会做一些清理的工作.

halt最开始的机器上只关闭系统,但是不关闭电源,但是拥有ACPI以后,halt也会关闭电源

poweroff关闭系统以后,给ACPI发送一个关闭电源的命令.

shutdown –h now 关机并且关闭电源

shutdown –r now

 

 

chkconfig –add 给当前运行级别,添加开机自启动的服务.

 

end

posted @ 2015-08-18 20:55  wanglc_work  Views(5115)  Comments(0Edit  收藏  举报