# time sosreport
(补充:这里以显示 sosreport 命令所需执行时间为例)
# time sosreport
(补充:这里以显示 sosreport 命令所需执行时间为例)
if: Expression Syntax. then: Command not found.
此时终端没有使用 bash 解释器,而是使用了简化版 sh 解释器
> exec bash ; source ~/.bashrc
作者:朱明宇
名称:测试 SFTP 服务
作用:测试 SFTP 服务
1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本
IP=10.0.0.8 #要测试 SFTP 的服务器 IP 地址
此脚本执行前必须要先保证执行脚本的主机能无秘钥远程需要测试 SFTP 服务的服务器
#!/bin/bash
####################### Separator ########################
IP=10.0.0.8
####################### Separator ########################
set timeout 3
rpm -q expect &> /dev/null
if [ $? -ne 0 ];then
echo "Expect needs to be installed first"
fi
expect << EOF
spawn sftp $IP
expect "sftp>" {send "cd /tmp\r" }
expect "sftp>" {send "ls -l\r"}
expect "sftp>" {send "quit\r"}
expect ">" {send "\r"}
EOF
(步骤略)
(步骤略)
(步骤略)
rescue login:root
(步骤略)
(
补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定
)
tty1:rescue:~ # mount <root spartition> /mnt
(
补充:
1) 如果是物理分区,系统的根 “/” 分区就在救援模式的 /dev/ 目录里,例如救援模式的 /dev/sda1
2) 如果是逻辑分区,Rocky Linux & RHEL 的系统根 “/” 分区就是救援模式里的 /dev/<volume group>/<logical volume> 例如救援模式里的 /dev/vg/lv,openSUSE & SUSE 的系统根 “/” 分区就是救援模式里的 /dev/mapper/<volume group>-<logical volume> 例如救援模式里的 /dev/mapper/vg-lv
)
tty1:rescue:~ # mount --rbind /dev /mnt/dev
(
补充:
1) 此时所有对救援模式的 /mnt/dev 目录的访问都会变成对救援模式的 /dev 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /proc /mnt/proc
(
1) 补充:此时所有对救援模式的 /mnt/proc 目录的访问都会变成对救援模式的 /proc 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /sys /mnt/sys
(
1) 补充:此时所有对救援模式的 /mnt/sys 目录的访问都会变成对救援模式的 /sys 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /run /mnt/run
(补充:此时所有对救援模式的 /mnt/run 目录的访问都会变成对救援模式的 /run 目录的访问)
tty1:rescue:~ # chroot /mnt
(补充:这里以 /mnt 作为系统根 “/” 目录为例)
bash-4.3# mount -a
bash-4.3# ls
bin boot dev home lib lib64 mnt opt proc root run sbin selinux srv sys tmp usr var
(补充:这里显示的是常见的 Linux 根 “/” 目录 下的目录)
bash-4.3# mkdir /media
bash-4.3# mount /dev/dvd /media
bash-4.3# cp /media/suse/x86_64/rpm-4.11.2-16.21.1.x86_64.rpm .
(补充:这里以拷贝 rpm-4.11.2-16.21.1.x86_64.rpm RPM 文件 (软件包) 为例)
bash-4.3# mkdir pkg
bash-4.3# cd pkg
bash-4.3# rpm2cpio ../rpm-4.11.2-16.21.1.x86_64.rpm | cpio -ivd
(补充:这里以提取 rpm-4.11.2-16.21.1.x86_64.rpm RPM 文件 (软件包) 为例)
bash-4.3# cp bin/rpm /bin/
bash-4.3# exit
tty1:rescue:~ # reboot
https://www.suse.com/support/kb/doc/?id=000018770
1) 系统无法被 ssh
2) 通过 console 口登录系统在输入密码时会卡住
3) 尝试将当前根 “/” 目录从救援模式的根 “/” 目录切换到系统的根 “/” 目录时会报错 “chroot: failed to run command #/bin/bash#: No such file or directory”
4) 重启系统后无法进入系统,并提示:/grub2/i386-pc/normoal.mod not found gpt
5)在救援模式显示 /boot 目录里的文件时,可能会发现此目录下只有 grub2 目录,而此 grub2 目录里也是空的
6) 在救援模式显示 /bin 目录时,会显示并无此目录
7) 在救援模式显示 /etc 目录里的文件时,可能会发现此目录下只有 lvm 文件
(步骤略)
(步骤略)
(步骤略)
rescue login:root
(步骤略)
(
补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定
)
tty1:rescue:~ # mount <root spartition> /mnt
(
补充:
1) 如果是物理分区,系统的根 “/” 分区就在救援模式的 /dev/ 目录里,例如救援模式的 /dev/sda1
2) 如果是逻辑分区,Rocky Linux & RHEL 的系统根 “/” 分区就是救援模式里的 /dev/<volume group>/<logical volume> 例如救援模式里的 /dev/vg/lv,openSUSE & SUSE 的系统根 “/” 分区就是救援模式里的 /dev/mapper/<volume group>-<logical volume> 例如救援模式里的 /dev/mapper/vg-lv
)
tty1:rescue:~ # ls /mnt
(补充:此时可以看到 /mnt 目录下有系统根 “/” 目录下的各个目录,例如 /etc /root 等)
tty1:rescue:~ # mount --rbind /dev /mnt/dev
(
补充:
1) 此时所有对救援模式的 /mnt/dev 目录的访问都会变成对救援模式的 /dev 目录的访问
2) 步骤 5.2、步骤 5.3 和步骤 5.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /proc /mnt/proc
(
补充:
1) 此时所有对救援模式的 /mnt/proc 目录的访问都会变成对救援模式的 /proc 目录的访问
2) 步骤 5.2、步骤 5.3 和步骤 5.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /sys /mnt/sys
(
补充:
1) 此时所有对救援模式的 /mnt/sys 目录的访问都会变成对救援模式的 /sys 目录的访问
2) 步骤 5.2、步骤 5.3 和步骤 5.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /run /mnt/run
(补充:此时所有对救援模式的 /mnt/run 目录的访问都会变成对救援模式的 /run 目录的访问)
tty1:rescue:~ # chroot /mnt
chroot: failed to run command #/bin/bash#: No such file or directory
(补充:这里以 /mnt 作为系统根 “/” 目录为例)
(注意:因为在使用 rm -rf /* 命令删过根 “/” 以后,/bin/bash 已经被删除,所以会报错:chroot: failed to run command #/bin/bash#: No such file or directory)
tty1:rescue:~ # ls /boot
grub2
tty1:rescue:~ # ls /boot
此步骤也可以通过以下方法实现:
tty1:rescue:~ # ls -l /mounts/mp_0001/boot
total 0
......grub2
tty1:rescue:~ # ls -l /mounts/mp_0001/boot/grub2
total 0
tty1:rescue:~ # ls /mnt/bin
ls: cannot access '/mnt/bin' : No such file or directory
tty1:rescue:~ # ls /etc/
lvm
tty1:rescue:~ # mkdir /mnt/bin
tty1:rescue:~ # mkdir /media
tty1:rescue:~ # mount /dev/dvd /media
tty1:rescue:~ # cp /media/suse/x86_64/bash-4.3-83.23.1.x86_64.rpm .
(补充:这里以拷贝 /media/suse/x86_64/bash-4.3-83.23.1.x86_64.rpm)
tty1:rescue:~ # mkdir bash
tty1:rescue:~ # cd bash
tty1:rescue:~ /bash # rpm2cpio ../bash-4.3-83.23.1.x86_64.rpm | cpio -ivd
(补充:这里以提取 bash-4.3-83.23.1.x86_64.rpm RPM 文件 (软件包) 为例)
tty1:rescue:~ /bash # ls
bin etc usr
tty1:rescue:~ /bash # cp -rpv bin/* /mnt/bin
'bin/bash' -> '/mnt/bin/bash'
'bin/sh' -> '/mnt/bin/sh'
tty1:rescue:~ /bash # ldd /bin/bash
tty1:rescue:~ /bash # mkdir /mnt/lib
tty1:rescue:~ /bash # mkdir /mnt/lib64
tty1:rescue:~ /bash # cp /lib/x86_64-linux-gnu/liblsp.so /mnt/lib
tty1:rescue:~ /bash # cp /lib/x86_64-linux-gnu/libtinfo.so.5 /mnt/lib
tty1:rescue:~ /bash # cp /lib/x86_64-linux-gnu/libd1.so.2 /mnt/lib
tty1:rescue:~ /bash # cp /lib/x86_64-linux-gnu/libc.so.6 /mnt/lib
tty1:rescue:~ /bash # cp /lib64/ld-linux-x86-64.so.2 /mnt/lib64
tty1:rescue:~ /bash # chroot /mnt
(补充:这里以 /mnt 作为系统根 “/” 目录为例)
bash-4.3# mount -a
bash-4.3# ls
bin boot dev home lib lib64 mnt opt proc root run sbin selinux srv sys tmp usr var
bash-4.3# history | less
bash-4.3# last | less
(补充:此时会显示最后登录系统的用户、登录时间、且可能最后 1 个登录系统的用户无退出时间)
(步骤略)
https://www.suse.com/support/kb/doc/?id=000018770