Yan 的个人资料YAN照片日志列表 工具 帮助

Yan SHAN

YAN

7/20/2010

删除 目录 linux

rm -rf


rmdir 所删除的目录,每级目录中都是空的,没有其它的文件。如果任何一级的目录有文件,也不能删除。这时您要用到rm -rf 命令强制删除。不过用rm -rf 删除时有点不安全,还是用rf -ri 比较好一点,因为在删除的时候,会有警告提示。这对于安全操作来说是很重要的;

PUTTY + WINSCP 设置 自动登陆+ 右键

运行 putty 删除 winscp temporary session  关闭程序

运行 winscp 链接到 服务器 (key 或者 ssl)

运行 putty 选择 winscp temporary session load

左栏 windows - selection - action of mouse button - 选择 windows

回到 左栏 session 选择 winscp temporary session  点 save
7/16/2010

putty

大致内容罗列如下:

  • 最 简单的使用,登录 SSH 主机
  • 中文乱码的处理
  • PuTTY 常用配置的说明
    • 复制、粘贴
    • 保 存会话
    • 注销
    • 自动登录用户名
    • 自动设置环境变量
    • 设置代理服务器
    • 自 动执行命令
    • 备份、删除 PuTTY 的设置
  • PuTTY 的 X11 转发
  • 如 何用 PuTTY 建立 SSH 隧道
  • 如何用 PuTTY 建立反向的 SSH 隧道,像个特洛伊木马一样突破防火墙
  • 把 PuTTY 作为一个安全的代理服务器
    • 安全的上网不被嗅探
    • 避免 MSN 等聊天工具被监听
  • 怎 样用 PSCP、PSFTP 安全的传输文件
    • 功能强大的 SFTP 客户端 WinSCP
  • 用 PuTTYgen 生成密钥,登录 SSH 主机不再需要口令
  • Pagent 代理密钥,每次开机只需要输入一次密钥口令
  • Plink 简单而又迅速的执行 SSH 主机上的程序
  • 常见问题

除了上面的这些,还夹杂了一些 PuTTY 使用上的技巧、服务器配置的一些安全建议。说起来这是一些有关 PuTTY 的使用教程,其实也就是 SSH 的参考教程,绝大多数的内容在其他系统或软件上也都是一样的。不同的是参数、配置、命令行之类的,只要会了一个,其他也就触类旁通了。

如果 你已经知道 SSH、Telnet、Rlogin 这是什么,就跳过这一部分,看下面的吧。

(以后补充,暂时空下)

PuTTY 的官方网站:http://www.chiark.greenend.org.uk /~sgtatham/putty/,截止到 2007年6月,发布的最高稳定版本是 0.6。

PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括:

  • PuTTY (Telnet 和 SSH 客户端)
  • PSCP (SCP 客户端, 命令行下通过 SSH 拷贝文件,类似于 Unix/Linux 下的 scp 命令)
  • PSFTP (SFTP 的命令行客户端,类似于 FTP 的文件传输,只不过使用的是 SSH 的 22 端口,而非 FTP 的 21 端口,类似于 Unix/Linux 下的 sftp 命令)
  • PuTTYtel (仅仅是一个 Telnet 客户端)
  • Plink (命令行工具,执行远程服务器上的命令)
  • Pageant (PuTTY、PSCP、Plink 的 SSH 认证代理,用这个可以不用每次都输入口令了)
  • PuTTYgen (用来生成 RSA 和 DSA 密钥的工具).

虽 然包含了这么多,但平时经常见到只是用 PuTTY 登录服务器,完全没有发挥出 PuTTY 的强大功能。
PuTTY 作为一个组件也存在于很多的软件中,比如 FileZilla、WinSCP
在后面的文字中,如非特别说明,默认的登录的协议是 SSH。毕竟用 PuTTY 主要就是登录 SSH 主机,用 Telnet、RLogin 没法体现出 PuTTY 的强大功能。

下载页面在这里:http://www.chiark.greenend.org.uk/~sgtatham /putty/download.html
PuTTY 需要安装么?需要么?需要么?真的需要么?不需要。PuTTY 是一个准绿色软件,说它绿色是因为直接就能使用,完全没有任何的安装程序。准绿色是指 PuTTY 的所有配置都保存到了注册表,如果不记得备份注册表中的相关内容,下次重装机器所有配置就没了,而且配置也不方便用闪存盘随身携带。但是 PuTTY 的配置删除还是蛮方便的,运行时指定个参数 -cleanup 就可以清除 PuTTY 的所有配置信息。

运行 PuTTY 就可以看到下面这个界面

在这里输入服务器的 IP 或主机名,选择好登录协议,还有协议的端口,如果希望把这次的输入保存起来,以后就不需要再重新输入了,就在第4步输入好会话保存的名称,比 如:mail-server,或者干脆就是主机的地址,点击保存就可以了。

最后点下面的 Open 按钮,输入正确的用户名和口令,就可以登录服务器了。

第 一次登录时,会看到这个对话框

这是要告诉你登录的主机密钥指纹,点 Yes 就保存起来,以后就不会再弹出这个窗口,然后就正常登录。点 No 不保存,下次还是要提示你,然后也可以正常登录。如果一台主机我们只是临时登录一下,当然就是点 No 了。Cancel 就是取消,也就是取消了这次登录。
如果你曾经登录过这台主机,但是又弹出来这个对话框,可能有以下几种情形:

  • 主机重新安 装了操作系统
  • 这台主机可能有多个IP,这次用的是另外一个 IP
  • 有其他不怀好意的主机来冒充,诱骗我们登录,窃取隐 秘信息

前两个情形很常见,一般点 Yes 就行了。后面这个嘛……唔……唔……,点 No/Cancel,再去询问相关的主机管理人员。

成功登录主机后,输入命令,这……这……显示,又是乱码。唉,中文乱码是一个老生常谈的 问题,提起来就头大。原因嘛,不外乎字符集、终端编码之类的,还是可以解决的。

PuTTY 的默认字体和字符集并不适合中文显示, 在窗口标题上点击右键,选择 Change Settings...

在打开的配置窗口左边选择 Appearance,在右边点 Font settings 里面的 Change 按钮,选择好中文字体,比如:宋体、新宋体之类的

字体选择好了,还要确定字符集。
选择配置窗口左边的 Translation,在右边的 Received data assumed to be in which character set 下拉列表中选择最后一个“Use font encoding”,最后点下面的 Apply 按钮就生效了。

重新执行命令 ls -l,就可以正常看到中文了

如果还是乱码的话,就执行以下命令,看看系统的字符集
echo $LANG $LANGUAGE

哦,原来系统的字符集是 UTF-8 呀。重新返回上面选择字符集的那一步, 选择配置窗口左边的 Translation,在右边的 Received data assumed to be in which character set 下拉列表中选择“UTF-8”

这下99%的情形下,汉字是不会有乱码了。最后,总之一下 PuTTY 中乱码的解决办法:
先 看看系统的字符集,如果是 UTF-8 的,那就简单了,选择好中文字体,然后编码选择 UTF-8 就行了。
如果编码是 GB2312、GBK、GB18030,当然也包括 BIG5这些,在 PuTTY 的编码选择中看不到这些编码,那就选择最后一个“Use font encoding”,绝大部分情况下这样就没啥问题了,反正我是没碰到有什么例外的情况。
现在的 Linux 如果默认语言选择为中文,默认的编码就是 UTF-8 了。以前安装 Redhat AS 3 时,语言选择为中文,默认的编码是 zh_CN.gb2312, zh_CN.gb18030,好像从 AS 3 update 6 开始,包括现在的 AS4、AS5,中文的默认编码都成了 zh_CN.utf8。至于 Debian、Ubuntu 等等这些上面,好像一直都是 UTF-8。
至 于是使用 UTF-8呢,还是用 GB2312、GBK 或者 GB18030呢?我个人还是倾向于 UTF-8。毕竟我们使用的大多数软件都是国外的,处理中文编码多多少少有些问题,PuTTY 自然也不例外。
下面的这个图上,我把终端编码修改 为 zh_CN.utf8,然后也按照前面的所说的方法把 PuTTY 的字符集修改为 UTF-8。然后在终端中输入汉字“柴锋”,按左方向键,可以看到汉字显示很正常。

我重 新把终端的编码修改为 zh_CN.gb2312,同样的,把 PuTTY 的字符集修改为最后一个“Use font encoding”。还是在终端上输入汉字“柴锋”,按下左方向键以后,会看到汉字乱码了。

至于 用哪个编码,主要还是看领导的决定了,我们的领导就喜欢 GBK,连 GB18030 都不行。以前在用 Debian 的时候,好像默认都不支持 GBK 编码。这几年公司的开发在汉字编码问题上出过几次麻烦,还不就是在 ISO8859-1, GB2312/GBK/GB18030和UTF-8上折腾来折腾去。
给大家看一张 emacs 的截图,看看上面的这么多语言的文字共同显示,这个会是用 GB2312/GBK/GB18030 的编码么?

用 UTF-8 也不是为了要在一个屏幕上显示好几种不认识的文字,也不一定非要是跟国际接轨弄个外包给老外开发程序做个其他语言的界面让老外用,起码不要在那么多编码里 折腾了,顶多两个 ISO8859-1 和 UTF-8。发发牢骚,下面继续……

在 PuTTY 的窗口里面复制、粘贴可不能用 Windows 里的这些 Ctrl C, Ctrl Ins, Ctrl V 这些快捷键,Ctrl C 在控制台上可是终止当前的命令执行。
PuTTY 的选择、复制、粘贴这些操作都是通过鼠标来完成的。
在 Window-〉Selection 这里可以设置复制和粘贴的方式。

默认 的 Action of mouse buttons (鼠标按键的功能)的选项是 Compromise,这种方式下选中有两种方式,一是直接用鼠标左键拖拉选中就可以了,二是用鼠标中键单击选中区域的开头,用滚动条拖拉到期望选中区域 的末尾,再用鼠标中键单击,就可以选中了。
选中以后,单击鼠标左键就把选中部分复制到剪贴板了。粘贴也很简单,单击鼠标右键。
Action of mouse buttons 的第一个选项是 Windows (Windows 方式的),鼠标中键的操作跟前面提到的一样。右键不是粘贴了,而是打开了右键菜单。

其实 这个右键菜单在标题栏上点击,也都可以看得到。

第三 个选项是 xterm (xterm 方式),这个跟默认的 Compromise 方式相反的,中键和右键的操作调换了一下,就不多说了。
下面 那个 Shift overrides application's use of mouse 是和 Shift 键有关的。有些 Rogue Like 的程序,比如 mc、links、Lynx、VIM 等等,都支持鼠标操作,想在用鼠标在上面选择或粘贴就不行了。这个选项默认是选中的,在支持鼠标操作的 Rogue Like 界面下,按住 Shift 键,就可以像前面的那样用鼠标来选择、复制、粘贴了。
看下面的这个图片,用 Links 打开了 Google 的首页,用鼠标去选中 顶部中间的 Google,我们会发现,弹出了保存的对话框。

按住 Shift 键重新操作一次,哈哈,这次选中了。

在 Control use of mouse 里面还有个 Default selection mode (默认的选择模式),默认是 Normal,就像文字处理工具里这样的选择

另外 一个是 Rectangular block(块选择方式),至于用哪种方式就看自己的选择了。

这 次更改配置参数了,关闭窗口后,下次使用还是要重新选择的,麻烦。
还是回到上面修改配置的哪个地方,选择左边的 Session,在右边选择要覆盖的会话名称,或者重新输入一个新的名称,点击 Save 按钮保存。

成功登录主机后,也能正常看到中文了。这样,我们就可以完成大部分的工作。最后要关闭 窗口了,该怎么办呢?我见过很多人,包括我们公司负责专职维护的同事,都是直接点击窗口上的关闭按钮,完全没有理会弹出警告窗口,直接点击了 Yes。

这样做是不对的,首先这 不是正确的注销方式,应该输入命令 exit 来正常注销; 其次直接关闭窗口后,你的登录其实还在服务器上,如果一连多次的这样强制关闭窗口,用命令 w 或者 who 命令查看时,可以看到很多的用户还在系统上登录,占用了系统的资源。最重要的是,你的这次登录可能只是为了启动一下 WebLogic 或者其他什么应用服务器,直接关闭窗口后,可能会导致你的业务在随后的几分钟内也被终止,这应该不是你所希望看到的吧。
如果上述的理由是每次要输 入 exit 然后回车,比较麻烦。你可以用快捷键 Ctrl d 来注销登录,一般情况下,快捷键一按窗口都直接关闭了,还省了两次鼠标点击。
在 前面说道保存会话时,大家或许也注意到,下面有个 Close window on exit 有三个选项:

  • Always (不管怎样,窗口总是要关闭的)
  • Never (无论是否有程序还在运行,都不要关闭窗口)
  • Only on clear exit (这个是默认选中的,只有在本次登录中运行的程序都正常终止或者在后台运行,窗口才关闭)

有的程序在执 行时,虽然在命令最后面加上 “&”就能放到后台运行。但是正常注销登录后,窗口没有被自动关闭,还能看到程序的输出,这时强制关闭窗口还是可以的。为了避免这种情形,可以使 用 nohup 命令。
用法嘛就是: nohup 命令 命令参数,这样就可以了。

执行了一个命令,输出了好多东西,但是默认的配 置下,PuTTY只保存了最后200行的内容,满足不了我们的需求

7/8/2010

MYSQL5忘记密码后重置root密码

系统:DEBIAN etch 4.0

MYSQL数 据库版本:5.0.27

(1)以 系统root权限登陆

(2)停止MYSQL服务器:
            /etc/init.d/mysql stop

(3)跳过授权表执行MYSQL服务器:
         mysqld_safe --skip-grant-tables --skip-networking &
        (注:参数--skip-grant-tables为跳过授权表;--skip-networking为不监听TCP/IP连接)

(4)执行MYSQL客户端:
         mysql

(5)使用mysql数据库
         use mysql;

(6)更新root密码
         update user set password=password('新密码') where user='root';

(7)关闭mysql服务器,用正常方试起动
           /etc/init.d/mysql restart

virtualmin

My hoster (ovh.com) use his own mirrors for debian.
so here is my sources.list :

-----------------------------
deb ftp://mir1.ovh.net/debian/ lenny main contrib non-free
deb-src ftp://mir1.ovh.net/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

-----------------------------
In this configuration, install.sh don't want to work. It ends with "Package webmin is not available".

So I change my sources.list in order to include official debian mirror :

-----------------------------

#deb ftp://mir1.ovh.net/debian/ lenny main contrib non-free
#deb-src ftp://mir1.ovh.net/debian/ lenny main contrib non-free

deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian lenny main

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

-----------------------------

right, the install.sh works now...

Whats wrong ? OVH's mirror seems to be 100% synchro with the Debian's one. I don't understand.
In addition, OVH customize Debian 32bit sources.list too. But there is no problem at install !!

Problem only in 64b... :-(

6/13/2010

vmware 最小化到托盘

VM 是支持关闭后在后台运行的。Edit>Preferences>Workspace,
把Run powered on virtual machine in background after close 选中,
当关闭VMware Workstation 的时候,即可最小化在托盘区,在后台运行了。
6/11/2010

win7下的vmware7.0.1启动不了VMware USB Arbitration Service服务

系统是win7旗舰版,安装了VMware® Workstation 7.0.1 build-227600英文原版,每次启动报usb连接错误,造成优盘不能使用,重装vmware也不行,错误信息Host USB device connections disabled.The connection to the VMware USB Arbitration Service was unsuccessful. Please check the status of this service in the Microsoft Management Console.

查服务发现是VMware USB Arbitration Service服务启动不了,手动也启动不了显示错误31:连接到系统上的设备没有发挥作用。

这个问题该怎么解决啊,希望有用vmware的帮帮忙



解决方法:上网搜的时候发现有人碰到相同问题,是与AMD USB filter驱动冲突,卸掉就可以了。但我的是intel平台,显然这个方法行不通的,后来察看系统事件,发现每次报错时,连带着有seehcri的报 错,看了一下是索爱的一个驱动,由于装索爱的PC套件时留下的,没有卸载干净,虽然卸的时候很麻烦,但最后还是搞定了,现在一切运行正常。


6/10/2010

windows cirtual pc : Microsoft loopback

在 host 上安装 loopback,设置 192.168.1.108/24;
在 vpc 上设置 network:microsoft loopback adapter;
在 guest 上配置与 loopback 对应的网络连接 192.168.1.109/24。


网络 拓扑 关闭 有可能不兼容
6/9/2010

virtual pc : Microsoft Loopback Adapter

一直使用VPC进行本机测试环境的搭建,经常会用虚拟机作为服务器来进行配置,而真实的机器也经常会作为客户端来访问服务器,有些时候在本机要单独组网。 在Win7以前的系统都是添加Loopback Adapter,方法参见【添加方法参考】。但是在Win7的“添加硬件”那里等了半天也没有出现可以手动选择的地方(不知道是不是Win7版本的问题, 正式版不知道会不会没有这个问题),在网上找了半天也没有,曾经一度放弃,很影响做测试。于是找了半天试了一些方法终于找到添加的办法,共享出来供大家参 考。
1.我的Win7版本
7600中文旗舰版

2.添加方法
  用管理员身份打开“设备管理器”右键单击设备管理器窗口的计算机名->添加过时硬件->安装我手动从列表选择的硬件->选择“网络 适配器”->选择Microsoft公司下的Microsoft Loopback Adapter,就完成了添加。之后就可以配置这个内部网卡了
第一步

第二步

第三步

第四步

第五步

安装完成之后可以在网络适配器里看到刚添加的设备



【添加方法参考】
1. 在实体机安装环回适配器。
  控制面板->添加硬件->手动->网络适配器->选择Microsoft公司下的Microsoft环回适配器(Vista 为中文,XP下面为Loopback Adapter)。
2. 配置环回适配器的IP地址
  这是隔离内外网用的。右键点击任务栏上的网络图标->网络和共享中心->左边的“管理网络连接”->双击打开环回适配器对应的本地 连接->在TCP/IP设置中填入IP地址和子网掩码。(根据自己的需要进行配置IP)
3. 关闭防火墙
  其实不需要完全关闭,只需要把环回适配器从Windows 防火墙中取消掉就可以了。
4. 配置虚拟机的网络
  不需要关闭虚拟机上的操作系统,在运行的时候也可以改。Edit->Settings->左边选Networking,然后把右边相应的 Adapter选择为Microsoft 环回适配器,这样,就相当于在虚拟机和实体机之间连接了一根网线。确定后再配置虚拟机的IP,使之与实体机在同一个网段即可。记得ping一下以确定操作 正确。
5/23/2010

Notice: Undefined variable 的解决方法

这是PHP警告信息,是由于未定义变量引起的。

比如:你未设置变量,却在php中用echo $varstr 了,就会出显这种情况,

解决方法:

修改php.ini

将: error_reporting = E_ALL


修改为:error_reporting = E_ALL & ~E_NOTICE


如果什么错误都不想让显示,直接修改:




display_errors = Off


如果你没有php.ini的修改权限,可在php头部加入


ini_set("error_reporting","E_ALL & ~E_NOTICE");

即可