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的时候,提示有文件冲突.
在红色字体上,右键,选择冲突解决方法,选择"标记为已解决"后,冲突提示消失.
右键选择 using theirs 或者 using mines,都是提示下面的错误:
有冲突的产物,文件名,右键,选择"edit conflicts"
提交状态:改增删.
=>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 *
然后命令行运行:
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就可以了,不需要特别的设置。
客户端:
- ssh -fND localhost:{port} {uname}@{server-addr},这条命令让ssh监听localhost上的{port}端口,并把收到的访问请求转发给{server-addr}
- 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