Linux 系统知识
分页: 1/9 第一页 1 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]
操作系统:Debian   cat /etc/debian_version   squeeze/sid

事情这样地,写了一个脚本,里面有bash的内建命令,有for循环之类的。使用的时候发现无法执行。如果去掉for循环,直接执行命令,就OK,我就奇怪这是为什么?


仔细的查了一下,发现了原因。

ha01:~/bin# grep -v ^# /etc/crontab
MAILTO=root
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )


ha01:/bin# ls -al /bin/sh
lrwxrwxrwx 1 root root 4 12月  1 12:45 sh -> dash



原因已经确认,debian默认crontab里面用的是dash而不是shell,那修改也就简单了。

ha01:~# rm /bin/sh
ha01:~# ln -s /bin/bash /bin/sh

ssh的tunnel的实例分析  

[| 不指定 2009/11/17 00:14]
参考链接:
http://secer.org/tech/depth-of-ssh-tunnel.html

ssh的隧道实例分析,总是看了一堆命令了,但是实际应用时总是搞错命令,下面就结合实际案例来写一下命令。


案例A:
主机ha01和ha02
1:在h02主机上操作,实现将ha01:80端口应用ssh隧道到本地ha02:12345
ssh -NCfg -L 12345:ha01:80   root@ha01
2:在ha02主机上操作,实现将ha02:80端口应用ssh隧道到远端ha01:12345
ssh -NCfg -R 12345:ha02:80   root@ha01

注意:
-g参数,只有在本地,也就是-L的时候,才开启监听所有端口;-R的时候,远端只监听127.0.0.1的端口。

案例B:
公司内网的主机代号INC-myhost,实现从外网穿透公司防火墙,直接访问到公司内网里面的主机。
实现方法:内网主机端口22与跳板主机端口12345建立隧道,通过ssh访问到跳板主机,在跳板主机访问127.0.0.1:12345到内网主机。

在内网主机上执行:
ssh -NCfg -R 12345:localhost:22   root@relaysrever.com


一些问题:实际操作中曾经报错,ssh_exchange_identification connection closed by remote host lost connection,尚未解决。当测试时内网主机为ubuntu9.04,外网主机为sles102时报错。当两台主机都是sles102时就没有问题。我尝试了/etc/hosts.allow、/etc/ssh/sshd_config的GatewayPorts yes等等,但是发现不是根本原因所在。但是肯定应该是ubuntu上的什么配置导致这个问题的呢?ubuntu上会报错connect_to relayserver port 22: failed.
Tags: ,
当时记得做DDNS的时候就想到这个问题,如果我的服务器上,无法执行脚本,如果在内网的主机上写cron的脚本来更新最外层的ADSL猫自动拨号的IP地址呢。这个问题真是笨啊。其实我们根据像是那些IP查询信息的网址,配合wget就可以搞定了。

如下:

wget http://www.123cha.com
iconv -f gbk -t utf8 -o 123cha.html index.html
grep "http://www.123cha.com/ip/?q=" 123cha.html  | cut -d'"' -f 2 | cut -d'=' -f 2

wget http://www.ip138.com/ips8.asp
iconv -f gbk -t utf8 -o ip138.html ips8.asp
grep "您的IP地址是" ip138.html  | cut -d'[' -f 2 | cut -d']' -f 1


通过上面的方法,就可以实现了。有时间的话,整理一下成为一个脚本。
关于题目:
想这个标题我想了很久?想了如下几个标题,
A:Linux最多支持的SCSI LUN是多少个?
B:Linux最多支持的SAN存储盘的个数是多少?
当我在查证了N圈之后,决定用现在这个标题。至于为什么稍后再给出答案。

实际情况:
事情本来很简单,那天客户打电话说扩容LVM。当时想了一下环境,无非就是存储划过来的盘,通过两个HBA卡,采用了SuSE自带的多路径软件Multipath-tools实现的。过程无非不就是控制一下HA的环境,然后设PV,加到VG,然后扩LV。再次跟客户确认了一下,客户强调这次用了两台存储划盘过来。打电话问老大,两个存储是否会有影响,老大说不会。于是回答客户OK,没有问题。周五过去讨论一下细节。当时就扩容的大小沟通了一下,扩到2.5T,当前只有400G左右。存储划的单个盘只有15G大小。想想无非就是划的盘多点。然后回去查查资料确认一下,到底支持多少个设备。当时没有做数学题,换算一下到底是多少个盘,这真是一个非常大的失败,而这也最终成为这次事件的起点。虽然没有具体换算有多少个,但是我心里清楚,必须要确定系统内到底支持多少个划过来的SCSI Luns.于是带着这个问题就开始了查询工作。

归根到底,商业的Linux和非商业的Linux区别就在这里,搞出个partner或者Certified,硬件厂商提供一些源码信息,以便Linux厂商更稳定的支持,前提呢?就是商业结盟,或是掏钱,或是利益交换。总之,变成稳定的基础。

说这么多废话,其实没有什么,那些该死的厂商说了,如果不在我的支持列表里面,Sorry,我不支持。为了上面的说法,请大家参考下面的链接。

引用

SLES Hardware Compatibility List(HCL):
SUSE Linux Enterprise Server Partner Products
http://developer.novell.com/yessearch/SResults.jsp
http://www.novell.com/partnerguide/section/481.html


RHEL Hardware Compatibility List:
RedHat  Enterprise Server Certified Hardware
http://www.redhat.com/rhel/compatibility/hardware/

分页: 1/9 第一页 1 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]