本文整理了多个鲜为人知但非常实用的Solaris/Unix系统管理技巧。这些技巧在日常运维中或许不常被想起,但在关键时刻能快速解决问题。内容涵盖telnet回格键修复、动态扩展swap空间、紧急恢复root权限等实用场景,逐一详细拆解。
1. telnet远程连接中回格键失效的解决方法
使用telnet远程登录另一台机器后,经常遇到回格键变成了删除键,按下Backspace反而出现乱码。解决方式很简单,只需在终端里执行:
Stty erase ^H
该命令会重新定义擦除字符为^H,此后回格键即可正常使用。
2. 通过telnet远程登录后,将图形界面显示到本地的设置方法
先在本地完成两项准备工作:查看当前DISPLAY变量,获取本机终端编号(比如:0.0),然后向远程机器授权:
#set |grep DIS
#xhost + 远程主机名或IP
接着telnet至远程主机,登录后执行:
#DISPLAY=本机主机名或IP:本机终端编号
#export DISPLAY
这样一来,远程应用的图形窗口就会出现在本地屏幕上了。
3. 忘记root密码后如何紧急登录恢复
借助Solaris安装光盘启动系统,挂载硬盘文件系统,直接修改shadow文件,将root的密码字段清空或替换为已知用户密码。具体操作步骤如下:
1. 把Solaris光盘放入光驱
2. 键入 stop+a
3. 出现'ok'后,键入 boot cdrom -s
4. cd /tmp/root
5. mkdir /tmp/root/xxx (任意目录名)
6. mount /dev/dsk/c0t0d0s0 /tmp/root/xxx (c0t0d0s0是你的root分区)
7. 运行csh
8. setenv TERM vt220
9. cp /tmp/root/xxx/etc/shadow /tmp/root/xxx/shadow/shadow.bak
10. vi /tmp/root/xxx/shadow,把root项中的password域删除
11. 重启,root无密码登录,之后记得马上设置新密码
4. 无需重启在线扩展swap空间的方法
不需要重启系统,三步即可完成:
a) mkdir /export/home/swap # 建一个目录放swap文件,可选
b) mkfile 200m swap1.file # 创建200MB的空文件
c) swap -a /export/home/swap/swap1.file # 激活该文件作为交换区
如果想在重启后自动生效,请在/etc/rc2.d/下创建S99swap脚本,并将swap -a /export/home/swap/swap1.file写入其中。否则每次重启后都需要手工重新激活。
5. 解决DOS文本文件在Solaris下出现多余^M回车符的问题
在DOS环境下编辑的脚本复制到Solaris后,通常会在每行末尾附带多余的^M回车符。使用vi打开文件,进入命令模式(按:)输入:
1,$s/^M//g
其中的^M需要用Ctrl+V再Ctrl+M的方式输入。替换后保存即可正常使用。
6. 启动Solaris内部Answerbook服务的命令
操作非常简单,执行以下命令即可:
/etc/init.d/ab2mgr start
7. 恢复SUN主机PROM默认配置的方法
如果由于修改PROM参数导致键盘无法响应,只需在重启时按住 Stop + N 键,即可强制恢复所有出厂默认设置。
8. 使用pkg命令安装Answerbook文档
进入产品目录后,使用包管理命令:
pkg -d .
9. Sun U60服务器只能进入单用户模式时的恢复步骤
故障现象:修改了/etc/init.d/rootusr,将dhcpinfo相关几行注释掉,结果重启报语法错误,只能进入单用户模式,且vi、ls等命令均无法找到。恢复方法如下:
(1) 放入Solaris安装光盘
(2) 键入 stop+a
(3) 出现'ok'后,键入 boot cdrom -s
(4) cd /tmp
(5) mkdir /tmp/test
(6) mount /dev/dsk/c0t0d0s0 /tmp/test
(7) 运行csh
(8) setenv TERM vt220
(9) vi /tmp/test/etc/init.d/rootusr,把出问题的esac那行也注释掉
(10) 取出光盘,reboot
10. 解决Solaris图形界面无法显示的问题
先执行 xhost + 主机名 开放权限,然后设置环境变量:
DISPLAY=:0.0; export DISPLAY
11. 限制root用户远程登录和FTP访问的方法
如果希望禁止root通过远程ssh或telnet登录,编辑/etc/default/login,加入一行:
console=/dev/console
若要限制root使用FTP,编辑/etc/ftpusers,在文件中添加一行root即可。
