误删除系统libselinux.so.1之后

不小心误删 libselinux.so.1之后,执行大部分系统命令时就开始报告:

error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory

系统命令无法使用,远程连接无法连接.

!!补救措施受各种条件限制,未必能够成功!!
所以建议
1、 对一些系统包的变更要慎重,慎之又慎。
例如

yum 不要随便卸载
libselinux 不要随便卸载
待续
2、对关键文件预先进行备份
例如本例中的 libselinux.so.1 ,费半天劲也不过就是恢复这个文件,如果预先备份了该文件,就不用大费周章了

解决办法:使用 rsync 来恢复该文件
步骤

1、在你的服务器上开启一个 rsync 服务端
cat > /etc/rsyncd.conf < port = 873
uid = root
gid = root
use chroot = yes
read only = yes
 
#limit access to private LANs
max connections =10
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
timeout = 300
 
[tmp]
path = /tmp/
list = yes
auth users = root
uid = root
gid = root
 
exclude = *.xml *.properties *.log
secrets file = /etc/rsyncd.pass
read only = no
EOF
 
 
echo "root:123.com" > /etc/rsyncd.pass
chmod 600 /etc/rsyncd.pass
 
# 启动服务
rsync --daemon --config=/etc/rsyncd.conf
# 停止服务
cat /var/run/rsyncd.pid | xargs kill -9 && rm -rf /var/run/rsyncd.pid
 
2、客户端将 libselinux.so.1同步到服务器
echo "123.com" > /etc/rsyncd.pass
chmod 600 /etc/rsyncd.pass
server_ip=192.168.1.11
rsync -aPv --port 873 /lib64/libselinux.so.1 ${server_ip}::tmp

rsync: failed to connect to 192.168.xx.xxx: No route to host (113) 
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.6] 
对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡

关闭防火墙,或者把防火墙的tcp udp 的873端口打开,允许rsync通过。

3、在服务端将 libselinux.so.1 移动到 /lib64/ 下
rsync -aPv /tmp/libselinux.so.1 /lib64

你可能感兴趣的:(Linux,Reference)