[实践OK]Linux出现Too many open files in system强制重启,原因是恶意用户连接SSH导致ssh-agent进程太多,最后只有reset键和长按关机键关机。
Unix/LinuxC技术 jackxiang 2018-5-16 22:51
原因:外网试图登录SSH破解密码太多,出现大量的/usr/bin/ssh-agent -s进程。ssh-agent会随着当前ssh会话的消失而消失,这也是一种安全机制.
解决办法如下:
cat /etc/profile.d/ssh-agent.sh
运行:
[root@localhost ~]# sh /etc/profile.d/ssh-agent.sh
Starting ssh-agent...
Agent pid 3625
[root@localhost ~]# ps -ef|grep 3625
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 3647 3325 0 22:57 pts/2 00:00:00 grep --color=auto 3625
后面再多个SSH,只有四个ssh-agent进程:
ps -ef|grep ssh-agent
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 2442 1 0 22:54 ? 00:00:00 /usr/bin/ssh-agent -s
root 2785 1 0 22:55 ? 00:00:00 /usr/bin/ssh-agent -s
root 3131 1 0 22:56 ? 00:00:00 /usr/bin/ssh-agent -s
root 3527 1 0 22:57 ? 00:00:00 /usr/bin/ssh-agent -s
root 3878 1 0 22:58 ? 00:00:00 /usr/bin/ssh-agent -s
cat ~/.agent.env
SSH_AUTH_SOCK=/tmp/ssh-X1RtYLOVI2iq/agent.3623; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3625; export SSH_AGENT_PID;
echo Agent pid 3625;
感觉进程数还是变多,无鸟用,于是干掉这个SSH-Client:
[root@localhost ~]# rpm -qf /usr/bin/ssh-agent
openssh-clients-7.4p1-13.el7_4.x86_64
[root@localhost ~]# rpm -e openssh-clients
错误:依赖检测失败:
openssh-clients 被 (已安裝) virt-viewer-5.0-7.el7.x86_64 需要
openssh-clients 被 (已安裝) python-meh-0.25.2-1.el7.noarch 需要
[root@localhost ~]# yum remove openssh-clients -y
作为依赖被删除:
anaconda-core.x86_64 0:21.48.22.121-1.el7.centos anaconda-gui.x86_64 0:21.48.22.121-1.el7.centos
anaconda-tui.x86_64 0:21.48.22.121-1.el7.centos initial-setup.x86_64 0:0.3.9.40-1.el7.centos
initial-setup-gui.x86_64 0:0.3.9.40-1.el7.centos python-meh.noarch 0:0.25.2-1.el7
python-meh-gui.noarch 0:0.25.2-1.el7 virt-viewer.x86_64 0:5.0-7.el7
参考自:https://blog.csdn.net/diamondxiao/article/details/52488628
一)SSH现象:
二)Linux桌面没了,出现:
系统出现kernel: audit: backlog limit exceeded提示
error: audit:backlog limit exceeded报错,audit缓冲大小瓶颈
来自:http://blog.51cto.com/jschu/1769025
三)如何强制重启?
有时候,linux 由于硬盘或者其它原因,
某个进程挂住了,怎么也杀不死,
输入 reboot 命令也无法重启。
这时候,一般只能按机箱上的reset健来重启了。
如果是远程ssh,那怎么办呢?
下面两行命令可以搞定:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
=========================================================
Linux使用shutdown -r now 或者 reboot、init 6 命令无法重启时使用以下两条命令可强制重启:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
1./proc/sys/kernel/sysrq
向 sysrq 文件中写入1是为了开启 SysRq 功能。根据 linux/Documentations/sysrq.txt 中所说:SysRq 代表的是 Magic System Request Key。开启了这个功能以后,只要内核没有挂掉,它就会响应你要求的任何操作。但是这需要内核支持(CONFIG_MAGIC_SYSRQ 选项)。向 /proc/sys/kernel/sysrq 中写入0是关闭 SysRq 功能,写入1是开启,其他选项请参考 sysrq.txt。
2./proc/sysrq-trigger
立即重新启动计算机:
echo "b" > /proc/sysrq-trigger
立即关闭计算机:
echo "o" > /proc/sysrq-trigger
来自:https://my.oschina.net/dongsong/blog/915358
解决办法如下:
cat /etc/profile.d/ssh-agent.sh
运行:
[root@localhost ~]# sh /etc/profile.d/ssh-agent.sh
Starting ssh-agent...
Agent pid 3625
[root@localhost ~]# ps -ef|grep 3625
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 3647 3325 0 22:57 pts/2 00:00:00 grep --color=auto 3625
后面再多个SSH,只有四个ssh-agent进程:
ps -ef|grep ssh-agent
root 3625 1 0 22:57 ? 00:00:00 ssh-agent
root 2442 1 0 22:54 ? 00:00:00 /usr/bin/ssh-agent -s
root 2785 1 0 22:55 ? 00:00:00 /usr/bin/ssh-agent -s
root 3131 1 0 22:56 ? 00:00:00 /usr/bin/ssh-agent -s
root 3527 1 0 22:57 ? 00:00:00 /usr/bin/ssh-agent -s
root 3878 1 0 22:58 ? 00:00:00 /usr/bin/ssh-agent -s
cat ~/.agent.env
SSH_AUTH_SOCK=/tmp/ssh-X1RtYLOVI2iq/agent.3623; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3625; export SSH_AGENT_PID;
echo Agent pid 3625;
感觉进程数还是变多,无鸟用,于是干掉这个SSH-Client:
[root@localhost ~]# rpm -qf /usr/bin/ssh-agent
openssh-clients-7.4p1-13.el7_4.x86_64
[root@localhost ~]# rpm -e openssh-clients
错误:依赖检测失败:
openssh-clients 被 (已安裝) virt-viewer-5.0-7.el7.x86_64 需要
openssh-clients 被 (已安裝) python-meh-0.25.2-1.el7.noarch 需要
[root@localhost ~]# yum remove openssh-clients -y
作为依赖被删除:
anaconda-core.x86_64 0:21.48.22.121-1.el7.centos anaconda-gui.x86_64 0:21.48.22.121-1.el7.centos
anaconda-tui.x86_64 0:21.48.22.121-1.el7.centos initial-setup.x86_64 0:0.3.9.40-1.el7.centos
initial-setup-gui.x86_64 0:0.3.9.40-1.el7.centos python-meh.noarch 0:0.25.2-1.el7
python-meh-gui.noarch 0:0.25.2-1.el7 virt-viewer.x86_64 0:5.0-7.el7
参考自:https://blog.csdn.net/diamondxiao/article/details/52488628
一)SSH现象:
二)Linux桌面没了,出现:
系统出现kernel: audit: backlog limit exceeded提示
error: audit:backlog limit exceeded报错,audit缓冲大小瓶颈
来自:http://blog.51cto.com/jschu/1769025
三)如何强制重启?
有时候,linux 由于硬盘或者其它原因,
某个进程挂住了,怎么也杀不死,
输入 reboot 命令也无法重启。
这时候,一般只能按机箱上的reset健来重启了。
如果是远程ssh,那怎么办呢?
下面两行命令可以搞定:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
=========================================================
Linux使用shutdown -r now 或者 reboot、init 6 命令无法重启时使用以下两条命令可强制重启:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
1./proc/sys/kernel/sysrq
向 sysrq 文件中写入1是为了开启 SysRq 功能。根据 linux/Documentations/sysrq.txt 中所说:SysRq 代表的是 Magic System Request Key。开启了这个功能以后,只要内核没有挂掉,它就会响应你要求的任何操作。但是这需要内核支持(CONFIG_MAGIC_SYSRQ 选项)。向 /proc/sys/kernel/sysrq 中写入0是关闭 SysRq 功能,写入1是开启,其他选项请参考 sysrq.txt。
2./proc/sysrq-trigger
立即重新启动计算机:
echo "b" > /proc/sysrq-trigger
立即关闭计算机:
echo "o" > /proc/sysrq-trigger
来自:https://my.oschina.net/dongsong/blog/915358
一)查看根路径下各个文件夹的文件数:
for i in /*; do echo $i; find $i |wc -l|sort -nr; done
二)发现/var的最多,于是再运行命令:
for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool
2428535
三)再次进入:
for i in /var/spool/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix
2428437
四)再次深入:
for i in /var/spool/postfix/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix/maildrop
2428402
五)估计上面安装了postfiex,检查下:
rpm -qa|grep postfix
postfix-2.6.6-2.2.el6_1.x86_64
六)Google上搜索下原因:
mail没有成功的邮件。由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
七)解决方法:
1)修改“/etc/crontab” ,将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以,也可从在crontab(crontab -e)中最前面直接加入MAILTO=""
2)find /var/spool/postfix/maildrop -type f -exec rm -rf {} \;
参考:http://www.coooz.com/archives/825
https://blog.csdn.net/zhangxinrun/article/details/51539587
for i in /*; do echo $i; find $i |wc -l|sort -nr; done
二)发现/var的最多,于是再运行命令:
for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool
2428535
三)再次进入:
for i in /var/spool/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix
2428437
四)再次深入:
for i in /var/spool/postfix/*; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix/maildrop
2428402
五)估计上面安装了postfiex,检查下:
rpm -qa|grep postfix
postfix-2.6.6-2.2.el6_1.x86_64
六)Google上搜索下原因:
mail没有成功的邮件。由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
七)解决方法:
1)修改“/etc/crontab” ,将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以,也可从在crontab(crontab -e)中最前面直接加入MAILTO=""
2)find /var/spool/postfix/maildrop -type f -exec rm -rf {} \;
参考:http://www.coooz.com/archives/825
https://blog.csdn.net/zhangxinrun/article/details/51539587
centos7部署运行docker-compose 出现 ImportError: No module named 'requests.packages.urllib3' 错误 的处理
Unix/LinuxC技术 jackxiang 2018-5-10 17:51
centos7部署运行docker-compose 出现 ImportError: No module named 'requests.packages.urllib3' 错误 的处理:
ImportError: No module named 'requests.packages.urllib3'
#解决办法
pip install requests urllib3 pyOpenSSL --force --upgrade
pip install --upgrade --force-reinstall 'requests==2.6.0'
参考:https://www.52zheteng.info/%E6%9C%8D%E5%8A%A1%E5%99%A8/centos7-%E4%BD%BF%E7%94%A8certbot-%E5%87%BA%E7%8E%B0-requests-packages-urllib3-%E9%94%99%E8%AF%AF-%E7%9A%84%E5%A4%84%E7%90%86/
ImportError: No module named 'requests.packages.urllib3'
#解决办法
pip install requests urllib3 pyOpenSSL --force --upgrade
pip install --upgrade --force-reinstall 'requests==2.6.0'
参考:https://www.52zheteng.info/%E6%9C%8D%E5%8A%A1%E5%99%A8/centos7-%E4%BD%BF%E7%94%A8certbot-%E5%87%BA%E7%8E%B0-requests-packages-urllib3-%E9%94%99%E8%AF%AF-%E7%9A%84%E5%A4%84%E7%90%86/
[实践OK]Mac下安装md5sum和linux下的md5sum使用和输出一样,不一样的FreeBSD 11.1下的md5和Linux下的md5sum不一样输出格式统一成md5deep以及自己编译出Linunx一样的md5sum可执行文件的瞎折腾。
Unix/LinuxC技术 jackxiang 2018-5-10 15:10
Mac下安装md5sum:https://blog.csdn.net/cup_chenyubo/article/details/52982986
brew install md5sha1sum
背景:公司网不好传入rz -bye的稍微大点的文件就断开了,再运行rz -bye,还会继续重头再传(只要失败再SSH上去运行rz -bye就会继续传,和默认SSH的目录无关,这个有点意思,但要是rz -bye支持断点上传就好了。),于是这就有一个比对文件是否是真的传上去了的md5sum比对,而Linux下有md5sum filename,FreeBSD下有md5,但输出格式和Linux下的不大一样,但都是求Md5,于是找了找,发现一个叫md5deep的可以Port安装,输出还和Linux下的一样,相当友好,偶尔会用到,记录三种都能达到目录,个人认为以第二种较为精简有力,符合Linux思想,现在用FreeBSD多吗?嘿嘿。
零)系统自己默认的md5也能求出文件内容的md5值:
md5 harbor-offline-installer-v1.2.0.tgz
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
#which md5
/sbin/md5
#ln -sf /sbin/md5 /sbin/md5sum #作个软链接且名字修改成md5sum
#md5sum harbor-offline-installer-v1.2.0.tgz #SecureCRT下新开SSH窗口:
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
==== 上面格式和Linux有点出入,找到一个和Linux一样的类似md5sum的Port安装包命令md5deep====
一)/usr/port/security/md5deep
make && make install
上面这个md5deep的输出和Linux的md5sum一样的:
On FreeBSD:
#md5deep /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
On Linux:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 harbor-offline-installer-v1.2.0.tgz
于是这样:
#which md5deep
/usr/local/bin/md5deep
#rm -rf /sbin/md5sum #删除前面的软链接。
vi /root/.cshrc
alias md5sum '/usr/local/bin/md5deep'
#which md5sum
md5sum: aliased to /usr/local/bin/md5deep
重新开一个FreeBSD的终端,和Linux一样运行md5sum filename获取文件内容的md5值:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
二)/usr/ports/sysutils/coreutils
make clean
make deinstall
make && make install
弹出一个窗体,选取消:
coreutils-8.25.tar.xz 12% of 5590 kB 382 kBps 00m20s
md5sum is part of GNU coreutils. The FreeBSD port to install is sysutils/coreutils. This will install all the GNU coreutils with a g prefix, so md5sum will be available as gmd5sum.
安装完后,md5sum生成在这个位置,直接拷贝到/usr/local/bin下面得了:
/usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
cp -rf /usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /bin/md5sum #和Linux目录一样。
#which md5sum
/bin/md5sum
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz #/bin/md5sum
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
#ldd /bin/md5sum
/bin/md5sum:
libc.so.7 => /lib/libc.so.7 (0x800836000)
我只要这一个coreutils编译出来的md5sum,于是make deinstall卸载掉没有用到的一些东西:
cd /usr/ports/sysutils/coreutils
make clean && make deinstall
因为它只是用到libc.so.7这个动态链接库,即使卸载掉后,依然能够运行这个md5sum的可执行文件求出输出文件的MD5值:
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
参考:https://unix.stackexchange.com/questions/439974/how-to-install-md5sum-in-freebsd
文中两Port摘自:https://forums.freebsd.org/threads/md5-compare-long-file-list-to-md5-file-contents.21795/
brew install md5sha1sum
背景:公司网不好传入rz -bye的稍微大点的文件就断开了,再运行rz -bye,还会继续重头再传(只要失败再SSH上去运行rz -bye就会继续传,和默认SSH的目录无关,这个有点意思,但要是rz -bye支持断点上传就好了。),于是这就有一个比对文件是否是真的传上去了的md5sum比对,而Linux下有md5sum filename,FreeBSD下有md5,但输出格式和Linux下的不大一样,但都是求Md5,于是找了找,发现一个叫md5deep的可以Port安装,输出还和Linux下的一样,相当友好,偶尔会用到,记录三种都能达到目录,个人认为以第二种较为精简有力,符合Linux思想,现在用FreeBSD多吗?嘿嘿。
零)系统自己默认的md5也能求出文件内容的md5值:
md5 harbor-offline-installer-v1.2.0.tgz
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
#which md5
/sbin/md5
#ln -sf /sbin/md5 /sbin/md5sum #作个软链接且名字修改成md5sum
#md5sum harbor-offline-installer-v1.2.0.tgz #SecureCRT下新开SSH窗口:
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
==== 上面格式和Linux有点出入,找到一个和Linux一样的类似md5sum的Port安装包命令md5deep====
一)/usr/port/security/md5deep
make && make install
上面这个md5deep的输出和Linux的md5sum一样的:
On FreeBSD:
#md5deep /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
On Linux:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 harbor-offline-installer-v1.2.0.tgz
于是这样:
#which md5deep
/usr/local/bin/md5deep
#rm -rf /sbin/md5sum #删除前面的软链接。
vi /root/.cshrc
alias md5sum '/usr/local/bin/md5deep'
#which md5sum
md5sum: aliased to /usr/local/bin/md5deep
重新开一个FreeBSD的终端,和Linux一样运行md5sum filename获取文件内容的md5值:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
二)/usr/ports/sysutils/coreutils
make clean
make deinstall
make && make install
弹出一个窗体,选取消:
coreutils-8.25.tar.xz 12% of 5590 kB 382 kBps 00m20s
md5sum is part of GNU coreutils. The FreeBSD port to install is sysutils/coreutils. This will install all the GNU coreutils with a g prefix, so md5sum will be available as gmd5sum.
安装完后,md5sum生成在这个位置,直接拷贝到/usr/local/bin下面得了:
/usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
cp -rf /usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /bin/md5sum #和Linux目录一样。
#which md5sum
/bin/md5sum
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz #/bin/md5sum
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
#ldd /bin/md5sum
/bin/md5sum:
libc.so.7 => /lib/libc.so.7 (0x800836000)
我只要这一个coreutils编译出来的md5sum,于是make deinstall卸载掉没有用到的一些东西:
cd /usr/ports/sysutils/coreutils
make clean && make deinstall
因为它只是用到libc.so.7这个动态链接库,即使卸载掉后,依然能够运行这个md5sum的可执行文件求出输出文件的MD5值:
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477 /opt/harbor-offline-installer-v1.2.0.tgz
参考:https://unix.stackexchange.com/questions/439974/how-to-install-md5sum-in-freebsd
文中两Port摘自:https://forums.freebsd.org/threads/md5-compare-long-file-list-to-md5-file-contents.21795/
[实践OK]解决yum update出错"package is a duplicate with", 后面居然把openssh-server删除掉ssh不上了用VNC才重新装上,注意了。
Unix/LinuxC技术 jackxiang 2018-5-10 11:10
产生可能原因:之前执行yun update命令时ctrl + c将其中断了, 现在重新执行yum update时出现如下错误:
问题描述:
解决方法
在stackovreflow网站找到了答案
列出重复的包
# package-cleanup --dupes
删除重复的包
# package-cleanup --cleandupes
执行完上面两个命令, 再yum update成功解决问题
OK, Enjoy it~
来自:https://blog.csdn.net/Cryhelyxx/article/details/51121407
yum install openssh-server -y
systemctl start sshd
问题描述:
解决方法
在stackovreflow网站找到了答案
列出重复的包
# package-cleanup --dupes
删除重复的包
# package-cleanup --cleandupes
执行完上面两个命令, 再yum update成功解决问题
OK, Enjoy it~
来自:https://blog.csdn.net/Cryhelyxx/article/details/51121407
yum install openssh-server -y
systemctl start sshd
linux内存的分配和释放
Unix/LinuxC技术 jackxiang 2018-5-9 14:15
了解内存分配机制(共享映射与请求分页)
通过 pmap 命令,可以获取用户进程逻辑地址空间中映射的内存信息:
pmap -x $pid
其中 -x 表示获取详细信息。
下面是一个例子:
pmap -x $(pidof emacs) |head -20
其中,“Address(地址)”指的进程的逻辑地址空间。
"Kbytes"列表示的是对应逻辑地址的容量,以Kb为单位
“RSS”列表示的是实际使用的物理内存容量,由于分页机制的存在,这个值一般要比"Kbytes"的值要少。
"Mapping"列为逻辑内存的映射方式,其中"[annon]"表示通过malloc函数来分配的堆空间(匿名内存),"[stack]"为进程的栈空间,这两种映射都是将物理内存映射到进程的逻辑内存上去。 而"emacs-25.3","libpixbufloader-svg.so"等文件名则表示它们执行的是文件映射,他们对应的是磁盘上的文件。当这些文件被读入高速缓存后,相应的内存空间被映射成进程的逻辑内存。
当出现多个程序共同使用相同的文件映射(共享库)时,它们可以共享磁盘高速缓存中的同一空间,从而节省物理内存的使用量,这种技术就是"共享映射"技术。
来自:http://lujun9972.github.io/blog/2018/04/18/linux%E5%86%85%E5%AD%98%E7%9A%84%E5%88%86%E9%85%8D%E5%92%8C%E9%87%8A%E6%94%BE/
通过 pmap 命令,可以获取用户进程逻辑地址空间中映射的内存信息:
pmap -x $pid
其中 -x 表示获取详细信息。
下面是一个例子:
pmap -x $(pidof emacs) |head -20
其中,“Address(地址)”指的进程的逻辑地址空间。
"Kbytes"列表示的是对应逻辑地址的容量,以Kb为单位
“RSS”列表示的是实际使用的物理内存容量,由于分页机制的存在,这个值一般要比"Kbytes"的值要少。
"Mapping"列为逻辑内存的映射方式,其中"[annon]"表示通过malloc函数来分配的堆空间(匿名内存),"[stack]"为进程的栈空间,这两种映射都是将物理内存映射到进程的逻辑内存上去。 而"emacs-25.3","libpixbufloader-svg.so"等文件名则表示它们执行的是文件映射,他们对应的是磁盘上的文件。当这些文件被读入高速缓存后,相应的内存空间被映射成进程的逻辑内存。
当出现多个程序共同使用相同的文件映射(共享库)时,它们可以共享磁盘高速缓存中的同一空间,从而节省物理内存的使用量,这种技术就是"共享映射"技术。
来自:http://lujun9972.github.io/blog/2018/04/18/linux%E5%86%85%E5%AD%98%E7%9A%84%E5%88%86%E9%85%8D%E5%92%8C%E9%87%8A%E6%94%BE/
[CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter 解决,解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter问题,购买的优越者型号及windows 软件下载地址。
Unix/LinuxC技术 jackxiang 2018-5-5 13:21
#./HWRaidManager
-bash: ./HWRaidManager: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
安装64位在Linux在32位程序的兼容YUM包:
使用的时候出现一个错误
bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
是因为64位系统中安装了32位程序
解决方法:
yum install glibc.i686
./HWRaidManager: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
yum install -y libpng-devel.x86_64
来自:https://sebastianblade.com/libpng12-so-0-cannot-open-shared-object-file/
rpm -ql libpng-devel|grep so
/usr/lib64/libpng.so
/usr/lib64/libpng15.so
ls -lart /usr/lib64/libpng.so
lrwxrwxrwx 1 root root 11 5月 5 13:26 /usr/lib64/libpng.so -> libpng15.so
ln -sf /usr/lib64/libpng15.so /usr/lib64/libpng12.so.0
还是不行,这优越者 raid1 Y-3355RAID管理程序,最后用物理方法解决了raid1的设置问题。
二)优越者型号及windows 软件下载地址。
http://www.unitek-it.com/download/showdownload.php?id=51
-bash: ./HWRaidManager: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
安装64位在Linux在32位程序的兼容YUM包:
使用的时候出现一个错误
bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
是因为64位系统中安装了32位程序
解决方法:
yum install glibc.i686
./HWRaidManager: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
yum install -y libpng-devel.x86_64
来自:https://sebastianblade.com/libpng12-so-0-cannot-open-shared-object-file/
rpm -ql libpng-devel|grep so
/usr/lib64/libpng.so
/usr/lib64/libpng15.so
ls -lart /usr/lib64/libpng.so
lrwxrwxrwx 1 root root 11 5月 5 13:26 /usr/lib64/libpng.so -> libpng15.so
ln -sf /usr/lib64/libpng15.so /usr/lib64/libpng12.so.0
还是不行,这优越者 raid1 Y-3355RAID管理程序,最后用物理方法解决了raid1的设置问题。
二)优越者型号及windows 软件下载地址。
http://www.unitek-it.com/download/showdownload.php?id=51
CentOS7 整机备份恢复
Unix/LinuxC技术 jackxiang 2018-5-4 14:29
以root权限在"/"目录执行备份命令:
恢复:
把备份文件拷贝到根分区, 然后执行命令. 注意是大写的C.
重建排除的目录(如果这些目录不存在的话):
来自:http://rickgong.iteye.com/blog/2386716
恢复:
把备份文件拷贝到根分区, 然后执行命令. 注意是大写的C.
重建排除的目录(如果这些目录不存在的话):
来自:http://rickgong.iteye.com/blog/2386716
[实践OK]linux用户之间的通信,Linux下常用的“聊天”命令,登录SSH用户间的通讯命令。
Unix/LinuxC技术 jackxiang 2018-4-13 16:47
#who
xiangdong tty1 2019-01-17 23:34
xiangdong pts/0 2019-01-18 09:32 (202.108.16.77)
xiangdong pts/1 2019-01-18 09:33 (202.108.16.80)
tty 看自己:
#tty
/dev/pts/1
即使自己是sudo 用who 看,其实还是原来的账户,如: xiangdong,用:
#write root pts/1
write: root is not logged in on pts/0 还得换成向东 xiangdong
#write xiangdong pts/0
jackxiang
对端就能收到,注意一下那个中文会有乱码。发点英文应该没有啥问题。
$write xiangdong
jfjdkf
jack
另一端:
Message from xiangdong@jackX@10_71_182_17* on pts/0 at 16:45 ...
jfjdkf
jack
阅读全文
xiangdong tty1 2019-01-17 23:34
xiangdong pts/0 2019-01-18 09:32 (202.108.16.77)
xiangdong pts/1 2019-01-18 09:33 (202.108.16.80)
tty 看自己:
#tty
/dev/pts/1
即使自己是sudo 用who 看,其实还是原来的账户,如: xiangdong,用:
#write root pts/1
write: root is not logged in on pts/0 还得换成向东 xiangdong
#write xiangdong pts/0
jackxiang
对端就能收到,注意一下那个中文会有乱码。发点英文应该没有啥问题。
$write xiangdong
jfjdkf
jack
另一端:
Message from xiangdong@jackX@10_71_182_17* on pts/0 at 16:45 ...
jfjdkf
jack
阅读全文
[实践OK]CentOS 7安装时:license information问题
Unix/LinuxC技术 jackxiang 2018-4-10 23:04
安装CentOS 7的时候选择了默认的许可证信息,但安装到最后进行不下去,就会显示License information(License not accepted)的信息。解决方法如下:
1.安装完CentOS重启后会进入到如下界面:
2.输入1进入许可证信息,再输入2我接受许可协议。如图:
3.输入c继续
4.下一步出现License information(License accepted),然后输入c继续,就可以进入系统了。
选2时,那个[]里面会加上x,也就是: [X]
参考:http://www.jb51.net/os/RedHat/532611.html
1.安装完CentOS重启后会进入到如下界面:
2.输入1进入许可证信息,再输入2我接受许可协议。如图:
3.输入c继续
4.下一步出现License information(License accepted),然后输入c继续,就可以进入系统了。
选2时,那个[]里面会加上x,也就是: [X]
参考:http://www.jb51.net/os/RedHat/532611.html
[实践OK]多个ISO文件怎样合并为一个ISO文件(Linux下的操作),合并 CentOS 6.8 的两个iso镜像,如何将RedHat Linux 9.0三张镜像光盘合并成一张,将Linux的三张ISO版CD镜像的合并成一个DVD光盘。
Unix/LinuxC技术 jackxiang 2018-4-9 14:33
背景:一个低版本的CentOS系统的Crontab可能坏了,需要修复,于是下载了有9个ISO安装包,如何合并?
实践步骤:
一)mkdir CentOS-5.10-x86_64-bin-{1,2,3,4,5,6,7,8,9}of9 CentOS-5.10-x86_64-bin-rpms ,这是建立 shrike-i386-disc{1,2,3} 和 CentOS-5.10-x86_64-bin-rpms 这10个目录。
二)挂载 Centos原来的9个镜像文件 :
mount -o ro,loop CentOS-5.10-x86_64-bin-1of9.iso CentOS-5.10-x86_64-bin-1of9
mount -o ro,loop CentOS-5.10-x86_64-bin-2of9.iso CentOS-5.10-x86_64-bin-2of9
mount -o ro,loop CentOS-5.10-x86_64-bin-3of9.iso CentOS-5.10-x86_64-bin-3of9
mount -o ro,loop CentOS-5.10-x86_64-bin-4of9.iso CentOS-5.10-x86_64-bin-4of9
mount -o ro,loop CentOS-5.10-x86_64-bin-5of9.iso CentOS-5.10-x86_64-bin-5of9
mount -o ro,loop CentOS-5.10-x86_64-bin-6of9.iso CentOS-5.10-x86_64-bin-6of9
mount -o ro,loop CentOS-5.10-x86_64-bin-7of9.iso CentOS-5.10-x86_64-bin-7of9
mount -o ro,loop CentOS-5.10-x86_64-bin-8of9.iso CentOS-5.10-x86_64-bin-8of9
mount -o ro,loop CentOS-5.10-x86_64-bin-9of9.iso CentOS-5.10-x86_64-bin-9of9
三)拷贝RPM文件
首先, 复制CentOS-5.10-x86_64-bin-1of9)中的所有文件到 CentOS-5.10-x86_64-bin-rpms目录下然后, 只拷贝前1到9 中 Packages 目录下的所有RPM文件到 CentOS-5.10-x86_64-bin-rpms 目录下,
mv CentOS-5.10-x86_64-bin-{1,2,3,4,5,6,7,8,9}of9/CentOS CentOS-5.10-x86_64-bin-rpms
最后一个Mount时出现: mount -o ro,loop CentOS-5.10-x86_64-bin-9of9.iso CentOS-5.10-x86_64-bin-9of9
mount: could not find any free loop device ,解决办法:解决方法:MAKEDEV -v /dev/loop
echo "MAKEDEV -v /dev/loop" >> /etc/rc.local
参阅文献:http://devnull.typepad.com/devnull/2012/09/rhel6-mount-could-not-find-any-free-loop-device.html
四)建立Rpm仓库索引,CentOS5在CentOS6系统上搭建YUM仓库时建立索引不大一样,否则centos在安装yum时无法使用:
createrepo --update -s sha1 -d -p -o /tmp /backup/yum.qr.XXX.net/centos/5/x86_64
------------------------------------------------------------------以下是来自网上的参考资料-----------------------------------------------------------
多个ISO文件怎样合并为一个ISO文件?我下载了几张比较小的ISO文件,想做进一张光盘里去,还要在光盘启动下运行?
解决办法:
1. 首先你必須要有一个很大的磁盘空间 大概要3.5g是空闲的 建立一个文件夹Createiso,然后把你的3个iso文件shrike-i386-disk1.iso,shrike-i386-disk2.iso,shrike-i386-disk3.iso放到Createiso中
2. 输入以下命令
mkdir shrike-i386-disc{1,2,3} shrike-docs
这是建立 shrike-i386-disc{1,2,3} 和 shrike-docs 这4个目录
3.将刚才放入Createiso中的3个iso镜像文件挂载到建立好的shrike-i386-disc{1,2,3} 这3个目录
mount -o ro,loop shrike-i386-disc1.iso shrike-i386-disc1
mount -o ro,loop shrike-i386-disc2.iso shrike-i386-disc2
mount -o ro,loop shrike-i386-disc3.iso shrike-i386-disc3
4 输入以下命令
cp -a shrike-i386-disc1/isolinux shrike-i386-disc1/.discinfo .
这是copy shrike-i386-disc1里的isolinux和.discinfo这两个文档到此目录
5 编辑.discinfo文件 将第4行的 1 换成 1,2,3 以表示要用這三个disk iso
6 输入以下命令(以下整个是一条指令)
mkisofs -o shrike-i386-dvd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -m TRANS.TBL -x shrike-i386-disc1/.discinfo -x shrike-i386-disc1/isolinux -graft-points shrike-i386-disc1 .discinfo=.discinfo isolinux/=isolinux RedHat/=shrike-i386-disc2/RedHat RedHat/=shrike-i386-disc3/RedHat docs/=shrike-docs
最后生成shrike-i386-dvd.iso,大功告成.将shrike-i386-dvd.iso文件刻成DVD光盘,以后安装Red Hat 9.0时就不用换盘了,够酷吧!
注:mkisofs命令不是Linux系统自带的,用前需要先安装.文件名为
mkisofs-2.01.a19-0.i686.rpm 此文件可到以下地址下载:
http://rpmfind.net/linux/RPM/Pro ... edia_CD_Record.html
安装 rpm -ivh mkisofs-2.01.a19-0.i686.rpm 后,便可使用了!
来自:https://blog.csdn.net/dong_pongkk999/article/details/18137937
======================================================================================
合并 CentOS 6.8 的两个DVD镜像
1、创建相关目录:
mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd3 /mnt/iso
说明:
/mnt/dvd1和/mnt/dvd2 用于挂载 Centos6.8原有的两个镜像ISO文件
/mnt/dvd3 合并后的镜像文件存放目录
/mnt/iso 制作号ISO镜像的存放目录
注意/ 目录磁盘空间是否够用,由于我这里磁盘不够,所以添加磁盘/dev/sdd,并挂载到/mnt/iso
2、挂载 Centos原来的两个镜像文件
mount /dev/sr0 /mnt/dev1
#/dev/sro 为原来镜像CentOS-6.8-x86_64-bin-DVD1
mount /dev/sr1 /mnt/dev2
#/dev/sr1 为原来镜像CentOS-6.8-x86_64-bin-DVD2
3、拷贝RPM文件
首先, 复制第一张DVD(CentOS-6.8-x86_64-bin-DVD1)中的所有文件到 /mnt/dvd3 目录下然后, 只拷贝第二张 DVD 中 Packages 目录下的所有RPM文件到 /mnt/dvd3/Packages 目录下,由于第二张DVD(CentOS-6.8-x86_64-bin-DVD2)不能当做启动光盘,所以只需呀RPM文件即可。
cp -av /mnt/dvd1/* /mnt/dvd3
cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd3/Packages/
4、合并TRANS.TBL
cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd3/Packages/TRANS.TBL
mv /mnt/dvd3/Packages/{TRANS.TBL,TRANS.TBL.BAK}
sort /mnt/dvd3/Packages/TRANS.TBL.BAK > /mnt/dvd3/Packages/TRANS.TBL
rm -rf /mnt/dvd3/Packages/TRANS.TBL.BAK
dvd3已经是合并后的文件了,可以用作本地源和做成ISO使用。
5、备份原有YUM配置文件
mkdir /etc/yum.repo.d/repo.bak
cp /etc/yum.repo.d/*.repo /etc/yum.repo.d/repo.bak
6、生成新的YUM配置文件
vim /etc/yum.repos.d/base.repo
[base]
name=base
baseurl=file:///mnt/dvd3
gpgcheck=0
7、更新YUM源
yum clean all
yum upgrade
8、将 /mnt/dvd3/ 打包为 ISO
mkisofs -l -J -L -r -V "CentOS-6.8-x86_64" -o /mnt/iso/CentOS-6.8-x86_64-DVD.iso /mnt/dvd3
来自:http://www.178linux.com/74032
==========================================================================================
工具:UltraISO
1、修改CD1根目录下的.discinfo文件,其文件内容如下():
1047611055.799229
Red Hat Linux 9
i386
1(修改这一行,因为一共有3个CD,在1后面加上",2,3",引号不需要)
RedHat/base
RedHat/RPMS
RedHat/pixmaps
2、修改/RedHat/RPMS目录下的TRANS.TBL文件
此文件存放的是.rpm文件的信息,每张CD的/RedHat/RPMS目录下都有一个,修改的方法是将CD2、CD3中/RedHat/RPMS目录下的TRANS.TBL文件的内容复制到CD1中/RedHat/RPMS目录下的TRANS.TBL文件内容的后面,并用保存后的新文件替换掉CD1中TRANS.TBL原文件。
3、将CD2、CD3中/RedHat/RPMS目录下的所有.rpm格式的文件复制到CD1中/RedHat/RPMS目录下,最后保存就可以了
注意:修改CD1时最好先备份
来自: http://hi.baidu.com/aleonly/blog/item/4d08c8b43a3732788ad4b23c.html
合并 CentOS 6.8 的两个iso镜像:
实践步骤:
一)mkdir CentOS-5.10-x86_64-bin-{1,2,3,4,5,6,7,8,9}of9 CentOS-5.10-x86_64-bin-rpms ,这是建立 shrike-i386-disc{1,2,3} 和 CentOS-5.10-x86_64-bin-rpms 这10个目录。
二)挂载 Centos原来的9个镜像文件 :
mount -o ro,loop CentOS-5.10-x86_64-bin-1of9.iso CentOS-5.10-x86_64-bin-1of9
mount -o ro,loop CentOS-5.10-x86_64-bin-2of9.iso CentOS-5.10-x86_64-bin-2of9
mount -o ro,loop CentOS-5.10-x86_64-bin-3of9.iso CentOS-5.10-x86_64-bin-3of9
mount -o ro,loop CentOS-5.10-x86_64-bin-4of9.iso CentOS-5.10-x86_64-bin-4of9
mount -o ro,loop CentOS-5.10-x86_64-bin-5of9.iso CentOS-5.10-x86_64-bin-5of9
mount -o ro,loop CentOS-5.10-x86_64-bin-6of9.iso CentOS-5.10-x86_64-bin-6of9
mount -o ro,loop CentOS-5.10-x86_64-bin-7of9.iso CentOS-5.10-x86_64-bin-7of9
mount -o ro,loop CentOS-5.10-x86_64-bin-8of9.iso CentOS-5.10-x86_64-bin-8of9
mount -o ro,loop CentOS-5.10-x86_64-bin-9of9.iso CentOS-5.10-x86_64-bin-9of9
三)拷贝RPM文件
首先, 复制CentOS-5.10-x86_64-bin-1of9)中的所有文件到 CentOS-5.10-x86_64-bin-rpms目录下然后, 只拷贝前1到9 中 Packages 目录下的所有RPM文件到 CentOS-5.10-x86_64-bin-rpms 目录下,
mv CentOS-5.10-x86_64-bin-{1,2,3,4,5,6,7,8,9}of9/CentOS CentOS-5.10-x86_64-bin-rpms
最后一个Mount时出现: mount -o ro,loop CentOS-5.10-x86_64-bin-9of9.iso CentOS-5.10-x86_64-bin-9of9
mount: could not find any free loop device ,解决办法:解决方法:MAKEDEV -v /dev/loop
echo "MAKEDEV -v /dev/loop" >> /etc/rc.local
参阅文献:http://devnull.typepad.com/devnull/2012/09/rhel6-mount-could-not-find-any-free-loop-device.html
四)建立Rpm仓库索引,CentOS5在CentOS6系统上搭建YUM仓库时建立索引不大一样,否则centos在安装yum时无法使用:
createrepo --update -s sha1 -d -p -o /tmp /backup/yum.qr.XXX.net/centos/5/x86_64
------------------------------------------------------------------以下是来自网上的参考资料-----------------------------------------------------------
多个ISO文件怎样合并为一个ISO文件?我下载了几张比较小的ISO文件,想做进一张光盘里去,还要在光盘启动下运行?
解决办法:
1. 首先你必須要有一个很大的磁盘空间 大概要3.5g是空闲的 建立一个文件夹Createiso,然后把你的3个iso文件shrike-i386-disk1.iso,shrike-i386-disk2.iso,shrike-i386-disk3.iso放到Createiso中
2. 输入以下命令
mkdir shrike-i386-disc{1,2,3} shrike-docs
这是建立 shrike-i386-disc{1,2,3} 和 shrike-docs 这4个目录
3.将刚才放入Createiso中的3个iso镜像文件挂载到建立好的shrike-i386-disc{1,2,3} 这3个目录
mount -o ro,loop shrike-i386-disc1.iso shrike-i386-disc1
mount -o ro,loop shrike-i386-disc2.iso shrike-i386-disc2
mount -o ro,loop shrike-i386-disc3.iso shrike-i386-disc3
4 输入以下命令
cp -a shrike-i386-disc1/isolinux shrike-i386-disc1/.discinfo .
这是copy shrike-i386-disc1里的isolinux和.discinfo这两个文档到此目录
5 编辑.discinfo文件 将第4行的 1 换成 1,2,3 以表示要用這三个disk iso
6 输入以下命令(以下整个是一条指令)
mkisofs -o shrike-i386-dvd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -m TRANS.TBL -x shrike-i386-disc1/.discinfo -x shrike-i386-disc1/isolinux -graft-points shrike-i386-disc1 .discinfo=.discinfo isolinux/=isolinux RedHat/=shrike-i386-disc2/RedHat RedHat/=shrike-i386-disc3/RedHat docs/=shrike-docs
最后生成shrike-i386-dvd.iso,大功告成.将shrike-i386-dvd.iso文件刻成DVD光盘,以后安装Red Hat 9.0时就不用换盘了,够酷吧!
注:mkisofs命令不是Linux系统自带的,用前需要先安装.文件名为
mkisofs-2.01.a19-0.i686.rpm 此文件可到以下地址下载:
http://rpmfind.net/linux/RPM/Pro ... edia_CD_Record.html
安装 rpm -ivh mkisofs-2.01.a19-0.i686.rpm 后,便可使用了!
来自:https://blog.csdn.net/dong_pongkk999/article/details/18137937
======================================================================================
合并 CentOS 6.8 的两个DVD镜像
1、创建相关目录:
mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd3 /mnt/iso
说明:
/mnt/dvd1和/mnt/dvd2 用于挂载 Centos6.8原有的两个镜像ISO文件
/mnt/dvd3 合并后的镜像文件存放目录
/mnt/iso 制作号ISO镜像的存放目录
注意/ 目录磁盘空间是否够用,由于我这里磁盘不够,所以添加磁盘/dev/sdd,并挂载到/mnt/iso
2、挂载 Centos原来的两个镜像文件
mount /dev/sr0 /mnt/dev1
#/dev/sro 为原来镜像CentOS-6.8-x86_64-bin-DVD1
mount /dev/sr1 /mnt/dev2
#/dev/sr1 为原来镜像CentOS-6.8-x86_64-bin-DVD2
3、拷贝RPM文件
首先, 复制第一张DVD(CentOS-6.8-x86_64-bin-DVD1)中的所有文件到 /mnt/dvd3 目录下然后, 只拷贝第二张 DVD 中 Packages 目录下的所有RPM文件到 /mnt/dvd3/Packages 目录下,由于第二张DVD(CentOS-6.8-x86_64-bin-DVD2)不能当做启动光盘,所以只需呀RPM文件即可。
cp -av /mnt/dvd1/* /mnt/dvd3
cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd3/Packages/
4、合并TRANS.TBL
cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd3/Packages/TRANS.TBL
mv /mnt/dvd3/Packages/{TRANS.TBL,TRANS.TBL.BAK}
sort /mnt/dvd3/Packages/TRANS.TBL.BAK > /mnt/dvd3/Packages/TRANS.TBL
rm -rf /mnt/dvd3/Packages/TRANS.TBL.BAK
dvd3已经是合并后的文件了,可以用作本地源和做成ISO使用。
5、备份原有YUM配置文件
mkdir /etc/yum.repo.d/repo.bak
cp /etc/yum.repo.d/*.repo /etc/yum.repo.d/repo.bak
6、生成新的YUM配置文件
vim /etc/yum.repos.d/base.repo
[base]
name=base
baseurl=file:///mnt/dvd3
gpgcheck=0
7、更新YUM源
yum clean all
yum upgrade
8、将 /mnt/dvd3/ 打包为 ISO
mkisofs -l -J -L -r -V "CentOS-6.8-x86_64" -o /mnt/iso/CentOS-6.8-x86_64-DVD.iso /mnt/dvd3
来自:http://www.178linux.com/74032
==========================================================================================
工具:UltraISO
1、修改CD1根目录下的.discinfo文件,其文件内容如下():
1047611055.799229
Red Hat Linux 9
i386
1(修改这一行,因为一共有3个CD,在1后面加上",2,3",引号不需要)
RedHat/base
RedHat/RPMS
RedHat/pixmaps
2、修改/RedHat/RPMS目录下的TRANS.TBL文件
此文件存放的是.rpm文件的信息,每张CD的/RedHat/RPMS目录下都有一个,修改的方法是将CD2、CD3中/RedHat/RPMS目录下的TRANS.TBL文件的内容复制到CD1中/RedHat/RPMS目录下的TRANS.TBL文件内容的后面,并用保存后的新文件替换掉CD1中TRANS.TBL原文件。
3、将CD2、CD3中/RedHat/RPMS目录下的所有.rpm格式的文件复制到CD1中/RedHat/RPMS目录下,最后保存就可以了
注意:修改CD1时最好先备份
来自: http://hi.baidu.com/aleonly/blog/item/4d08c8b43a3732788ad4b23c.html
合并 CentOS 6.8 的两个iso镜像:
背景:CentOS5.10出现Crontab运行僵死,是出现日志变大时发现的,原来是Crontab有问题了,怎么办?一是处理Sendmail的文件,http://jackxiang.com/post/2478/,二是处理卸载一下Crontab后再重新安装,可是版本太旧,找了一圈,发现CentOS的官方上还有旧的提供。可以一试。
CentOS5.10旧版本的镜像在:
http://vault.centos.org/5.10/os/x86_64/
cat /etc/yum.repos.d/dvd.repo
找一下这个vixie-cron,能找到,再找repodata,得出结论就是,位置在:http://vault.centos.org/5.10/os/x86_64/
为何在这个位置?因为有这个repodata的索引位置,一般就是指向它,RPMS放哪儿基本上无所谓,名字也可叫别的RPMS里的rpm包放repodata同级目录也成。
[DIR] CentOS/ 01-Jun-2016 15:56 -
[DIR] isolinux/ 17-Oct-2013 19:26 -
[DIR] repodata/ 14-Oct-2013 18:52 -
yum clean all
yum makecache
当然,也可自己要是有这个ISO的镜像可以挂到自己的repo仓库上面,用Nginx提供服务进行访问。
还是不行,下载地址变了:
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-1of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-2of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-3of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-4of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-5of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-6of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-7of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-8of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-9of9.iso
如何将多个ISO文件怎样合并为一个ISO文件(Linux下的操作):http://jackxiang.com/post/9709/
https://blog.csdn.net/dong_pongkk999/article/details/18137937
http://blog.51cto.com/resting/241619
CentOS 5.x 多个ISO文件 安装方法(VMware):https://www.cnblogs.com/iluzhiyong/p/5011161.html
安装完第一个iso,却不知如何换第二个iso。 1 右下角的设备图标,弹出窗口选择CD/DVD2 connection--user iso image file--browse:换成第二个iso文件3 device status--勾上connectedOK,再进入安装界面就可以继续了,后面以此类推。
==============================================================================================
1、挂载光盘
Shell代码 收藏代码
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
2、 修改yum源配置文件(注文件名必须以.repo结尾,最好把原来的yum源配置文件备份到其他目录)
vi /etc/yum.repos.d/CentOS-DVD.repo
#文件内容
[ISO]
name=CentOS-DVD
baseurl=file:///mnt/cdrom/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
3、刷新yum源
yum clean all
4、测试
yum search samba
来自:https://www.ibm.com/developerworks/cn/linux/l-cn-yum/
http://crazyidea.iteye.com/blog/798770
CentOS5.10旧版本的镜像在:
http://vault.centos.org/5.10/os/x86_64/
cat /etc/yum.repos.d/dvd.repo
找一下这个vixie-cron,能找到,再找repodata,得出结论就是,位置在:http://vault.centos.org/5.10/os/x86_64/
为何在这个位置?因为有这个repodata的索引位置,一般就是指向它,RPMS放哪儿基本上无所谓,名字也可叫别的RPMS里的rpm包放repodata同级目录也成。
[DIR] CentOS/ 01-Jun-2016 15:56 -
[DIR] isolinux/ 17-Oct-2013 19:26 -
[DIR] repodata/ 14-Oct-2013 18:52 -
yum clean all
yum makecache
当然,也可自己要是有这个ISO的镜像可以挂到自己的repo仓库上面,用Nginx提供服务进行访问。
还是不行,下载地址变了:
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-1of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-2of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-3of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-4of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-5of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-6of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-7of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-8of9.iso
wget -c http://archive.kernel.org/centos-vault/5.10/isos/x86_64/CentOS-5.10-x86_64-bin-9of9.iso
如何将多个ISO文件怎样合并为一个ISO文件(Linux下的操作):http://jackxiang.com/post/9709/
https://blog.csdn.net/dong_pongkk999/article/details/18137937
http://blog.51cto.com/resting/241619
CentOS 5.x 多个ISO文件 安装方法(VMware):https://www.cnblogs.com/iluzhiyong/p/5011161.html
安装完第一个iso,却不知如何换第二个iso。 1 右下角的设备图标,弹出窗口选择CD/DVD2 connection--user iso image file--browse:换成第二个iso文件3 device status--勾上connectedOK,再进入安装界面就可以继续了,后面以此类推。
==============================================================================================
1、挂载光盘
Shell代码 收藏代码
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
2、 修改yum源配置文件(注文件名必须以.repo结尾,最好把原来的yum源配置文件备份到其他目录)
vi /etc/yum.repos.d/CentOS-DVD.repo
#文件内容
[ISO]
name=CentOS-DVD
baseurl=file:///mnt/cdrom/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
3、刷新yum源
yum clean all
4、测试
yum search samba
来自:https://www.ibm.com/developerworks/cn/linux/l-cn-yum/
http://crazyidea.iteye.com/blog/798770
[实践OK]"systemd: Started Session ### of user root" in /var/log/messages
Unix/LinuxC技术 jackxiang 2018-3-27 20:42
tail -f /var/log/messages
Mar 27 20:39:01 localhost systemd: Starting Session 17 of user root.
Mar 27 20:40:01 localhost systemd: Started Session 18 of user root.
Mar 27 20:40:01 localhost systemd: Starting Session 18 of user root.
Mar 27 20:40:01 localhost systemd: Started Session 19 of user root.
Mar 27 20:40:01 localhost systemd: Starting Session 19 of user root.
Mar 27 20:40:12 localhost systemd: Starting Cleanup of Temporary Directories...
Mar 27 20:40:12 localhost systemd: Started Cleanup of Temporary Directories.
Mar 27 20:41:01 localhost systemd: Started Session 20 of user root.
Mar 27 20:41:01 localhost systemd: Starting Session 20 of user root.
Mar 27 20:42:01 localhost systemd: Stopping System Logging Service...
#Restart Syslog
systemctl restart rsyslog
[root@localhost ~]# systemctl restart rsyslog
您在 /var/spool/mail/root 中有新邮件
来自:https://access.redhat.com/solutions/1564823
https://www.linuxquestions.org/questions/linux-security-4/systemd-started-session-of-user-root-in-var-log-messages-4175515978/
Mar 27 20:39:01 localhost systemd: Starting Session 17 of user root.
Mar 27 20:40:01 localhost systemd: Started Session 18 of user root.
Mar 27 20:40:01 localhost systemd: Starting Session 18 of user root.
Mar 27 20:40:01 localhost systemd: Started Session 19 of user root.
Mar 27 20:40:01 localhost systemd: Starting Session 19 of user root.
Mar 27 20:40:12 localhost systemd: Starting Cleanup of Temporary Directories...
Mar 27 20:40:12 localhost systemd: Started Cleanup of Temporary Directories.
Mar 27 20:41:01 localhost systemd: Started Session 20 of user root.
Mar 27 20:41:01 localhost systemd: Starting Session 20 of user root.
Mar 27 20:42:01 localhost systemd: Stopping System Logging Service...
#Restart Syslog
systemctl restart rsyslog
[root@localhost ~]# systemctl restart rsyslog
您在 /var/spool/mail/root 中有新邮件
来自:https://access.redhat.com/solutions/1564823
https://www.linuxquestions.org/questions/linux-security-4/systemd-started-session-of-user-root-in-var-log-messages-4175515978/
[实践OKLinux系统上通知网关更新arp,]Linux下利用arping抢IP地址最终解决方案
Unix/LinuxC技术 jackxiang 2018-3-23 15:51
背景:向网关发送自己的IP和网卡,进而有包来后,网关都传给本机了。经常会有在线更换Linux服务器IP的操作,该操作带来的一个问题是: 我们已经执行了修改IP的操作,但由于网络上(网关)的ARP缓存暂未更新,导致在某一段时间内,该服务器会有网络不通的情况存在。因此,我们需要在变更IP的同时,通知网关刷新ARP缓存,假设你的eth0接口对应的ip为192.168.1.1,网关为192.168.1.254你就可以使用
arping -U -I eth0 -s 192.168.1.1 192.168.1.254
同理,用它注册VIP虚拟网卡地址也是有必要的,在Mysql和高可用VIP的切换上及时告诉网关我换到另一台机器了,且它是虚拟网卡:
http://jackxiang.com/post/8757/
/sbin/arping -I eth0 -c 1 -s 10.70.57.204 10.70.63.254 #Gateway:10.70.63.254
-c<数据包的数目> 发送的数据包的数目
-s 指定源IP地址
-I<网卡> 使用指定的以太网设备,默认情况下使用eth0
arp -a
baigemha_mysql_bj_syq_10_70_61_106 (10.70.57.204) at 00:50:56:89:d2:18 [ether] on eth0
/sbin/arping -I eth0 -c 1 -s 10.70.57.204 10.70.63.254 #Gateway:10.70.63.254
经常会有在线更换Linux服务器IP的操作,该操作带来的一个问题是: 我们已经执行了修改IP的操作,但由于网络上(网关)的ARP缓存暂未更新,导致在某一段时间内,该服务器会有网络不通的情况存在。
因此,我们需要在变更IP的同时,通知网关刷新ARP缓存。
首先清除本地ARP缓存:
/bin/ip neigh flush dev eth0
其次向网关发送本机的ip/mac地址
/usr/sbin/arping -v -c 2 -S 1.1.1.144 -s 00:17:a4:8d:0e:98 -p 1.1.1.1
1.1.1.144 为本机IP
00:17:a4:8d:0e:98 为本机MAC地址
1.1.1.1 为网关
转载自http://blog.chenxiaosheng.com/posts/2014-03-19/linux-arp-flush.html
阅读全文
arping -U -I eth0 -s 192.168.1.1 192.168.1.254
同理,用它注册VIP虚拟网卡地址也是有必要的,在Mysql和高可用VIP的切换上及时告诉网关我换到另一台机器了,且它是虚拟网卡:
http://jackxiang.com/post/8757/
/sbin/arping -I eth0 -c 1 -s 10.70.57.204 10.70.63.254 #Gateway:10.70.63.254
-c<数据包的数目> 发送的数据包的数目
-s 指定源IP地址
-I<网卡> 使用指定的以太网设备,默认情况下使用eth0
arp -a
baigemha_mysql_bj_syq_10_70_61_106 (10.70.57.204) at 00:50:56:89:d2:18 [ether] on eth0
/sbin/arping -I eth0 -c 1 -s 10.70.57.204 10.70.63.254 #Gateway:10.70.63.254
经常会有在线更换Linux服务器IP的操作,该操作带来的一个问题是: 我们已经执行了修改IP的操作,但由于网络上(网关)的ARP缓存暂未更新,导致在某一段时间内,该服务器会有网络不通的情况存在。
因此,我们需要在变更IP的同时,通知网关刷新ARP缓存。
首先清除本地ARP缓存:
/bin/ip neigh flush dev eth0
其次向网关发送本机的ip/mac地址
/usr/sbin/arping -v -c 2 -S 1.1.1.144 -s 00:17:a4:8d:0e:98 -p 1.1.1.1
1.1.1.144 为本机IP
00:17:a4:8d:0e:98 为本机MAC地址
1.1.1.1 为网关
转载自http://blog.chenxiaosheng.com/posts/2014-03-19/linux-arp-flush.html
阅读全文
Centos/Linux下如何查看网关地址/Gateway地址
Unix/LinuxC技术 jackxiang 2018-3-22 00:01
Linux下查看网关的命令还是很多的,不过如果IP是DHCP获取,那么有些命令是不适用的,当然也有通用的查询网关命令.
配置网关:
vi /etc/sysconfig/network
加入:
GATEWAY=192.168.0.1
完整的如下:
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.0.1
1.ifconfig -a 和 cat /etc/resolv.conf (主要查看ip/netmask和dns)
2.netstat -rn
3.cat /etc/sysconfig/network
4.cat /etc/sysconfig/network-scripts/ifcfg-eth0
5.traceroute 第一行就是自己的网关
6.ip route show
7.route -n
以上几个是比较常用的查询网关的命令。下面是范例:
[root@www.ctohome.com]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
184.82.152.96 0.0.0.0 255.255.255.248 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 184.82.152.97 0.0.0.0 UG 0 0 0 eth0
[root@www.ctohome.com]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82567V-2 Gigabit Network Connection
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:1c:c0:f8:a1:ac
ONBOOT=yes
NETMASK=255.255.255.248
IPADDR=184.82.152.98
GATEWAY=184.82.152.97
TYPE=Ethernet
[root@www.ctohome.com]# ip route show
184.82.152.96/29 dev eth0 proto kernel scope link src 184.82.152.98
169.254.0.0/16 dev eth0 scope link
default via 184.82.152.97 dev eth0
[root@www.ctohome.com]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
184.82.152.96 0.0.0.0 255.255.255.248 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 184.82.152.97 0.0.0.0 UG 0 0 0 eth0
[root@www.ctohome.com]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:1C:C0:F8:A1:AC
inet addr:184.82.152.98 Bcast:184.82.152.103 Mask:255.255.255.248
来自:http://www.360doc.com/content/14/0610/18/203871_385471759.shtml
配置网关:
vi /etc/sysconfig/network
加入:
GATEWAY=192.168.0.1
完整的如下:
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.0.1
1.ifconfig -a 和 cat /etc/resolv.conf (主要查看ip/netmask和dns)
2.netstat -rn
3.cat /etc/sysconfig/network
4.cat /etc/sysconfig/network-scripts/ifcfg-eth0
5.traceroute 第一行就是自己的网关
6.ip route show
7.route -n
以上几个是比较常用的查询网关的命令。下面是范例:
[root@www.ctohome.com]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
184.82.152.96 0.0.0.0 255.255.255.248 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 184.82.152.97 0.0.0.0 UG 0 0 0 eth0
[root@www.ctohome.com]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82567V-2 Gigabit Network Connection
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:1c:c0:f8:a1:ac
ONBOOT=yes
NETMASK=255.255.255.248
IPADDR=184.82.152.98
GATEWAY=184.82.152.97
TYPE=Ethernet
[root@www.ctohome.com]# ip route show
184.82.152.96/29 dev eth0 proto kernel scope link src 184.82.152.98
169.254.0.0/16 dev eth0 scope link
default via 184.82.152.97 dev eth0
[root@www.ctohome.com]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
184.82.152.96 0.0.0.0 255.255.255.248 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 184.82.152.97 0.0.0.0 UG 0 0 0 eth0
[root@www.ctohome.com]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:1C:C0:F8:A1:AC
inet addr:184.82.152.98 Bcast:184.82.152.103 Mask:255.255.255.248
来自:http://www.360doc.com/content/14/0610/18/203871_385471759.shtml
背景:使用ssh时有时会出现连接一个服务器的时候超慢,一般会显示一下信息,然后就卡在那不动了,发现原来是/etc/resolve.conf文件里的联通DNSIP无法访问导致的,而作了两个操作1)不解析DNS:vim /etc/ssh/sshd_config,设置UseDNS为no,直接重启ssd(sudo service sshd restart)就好了,并不影响当前连接,其它连接重新来就快了。2)更改/etc/ssh/sshd_config,GSSAPIAuthentication no。因为文件里的DNS因为出不了公网尽管修改了这两个项后,依然SSH挺慢的,于是,找网络安全值班的兄弟给加了SNAT,能出公网后,SSH连接就快了。
老外说:Use DNS = no does not prevent sshd from performing DNS lookups, it prevents it from rejecting clients when PTR records don't match.
-u0 prevents sshd from logging DNS names in the utmp struct.
lookups might still happen depending one what a user has in their authorized_keys.
See this for a decent explanation:
http://lists.freebsd.org/pipermail/freebsd-stable/2006-November/030886.html
实践捕获输出看慢哪儿了?
ssh -v -l xiangdong 192.168.111.**
debug1: identity file /home/xiangdong/.ssh/id_ecdsa-cert type -1 #卡这一行了
ll /home/xiangdong/.ssh/id_ecdsa-cert #没有这个文件
ls: cannot access /home/xiangdong/.ssh/id_ecdsa-cert: No such file or directory
查下:ssh debug1 identity file hangs
https://www.centos.org/forums/viewtopic.php?t=52538
strace ssh -T -l irdcops 10.70.36.191 捕获输出发现一直在找DNS进行确认,如下:
systemctl restart sshd.service
查看启动是否成功:
ps -ef|grep sshd|grep sbin
root 8503 1 0 Jan08 ? 00:00:00 /usr/sbin/sshd
即使之前连接着的,但是还是会不变,时间不变,为何要过滤掉那个时间,是想看是否真正重启了:
ps -ef|grep sshd
阅读全文
老外说:Use DNS = no does not prevent sshd from performing DNS lookups, it prevents it from rejecting clients when PTR records don't match.
-u0 prevents sshd from logging DNS names in the utmp struct.
lookups might still happen depending one what a user has in their authorized_keys.
See this for a decent explanation:
http://lists.freebsd.org/pipermail/freebsd-stable/2006-November/030886.html
实践捕获输出看慢哪儿了?
ssh -v -l xiangdong 192.168.111.**
debug1: identity file /home/xiangdong/.ssh/id_ecdsa-cert type -1 #卡这一行了
ll /home/xiangdong/.ssh/id_ecdsa-cert #没有这个文件
ls: cannot access /home/xiangdong/.ssh/id_ecdsa-cert: No such file or directory
查下:ssh debug1 identity file hangs
https://www.centos.org/forums/viewtopic.php?t=52538
strace ssh -T -l irdcops 10.70.36.191 捕获输出发现一直在找DNS进行确认,如下:
systemctl restart sshd.service
查看启动是否成功:
ps -ef|grep sshd|grep sbin
root 8503 1 0 Jan08 ? 00:00:00 /usr/sbin/sshd
即使之前连接着的,但是还是会不变,时间不变,为何要过滤掉那个时间,是想看是否真正重启了:
ps -ef|grep sshd
阅读全文
[实践OK]当一台服务器被yum删除grep的rpm包导致mount grep cp因为openssl-libs和krb5-libs被不小心yum remove掉后的恢复办法。
Unix/LinuxC技术 jackxiang 2018-3-12 12:01
背景:突然一台阿里云玩的低配机器的SSHD服务因缺少openssl-libs和krb5-libs两RPM包无法连接了,建议您使用管理控制台登陆远程,查看一下是否资源满了。
原因:是我自己升级CentOS7.4作yum update时不小心把 grep 的RPM包删除了,导致openssl-libs和krb5-libs被不小心yum remove掉了,引起了SSDH服务挂掉,wget和curl以及mount挂载都丢了,现在我修好了,关单了,如下操作:
提了个单说用非SecureCRT的网页终端连接,试了一下果然,这个是串口连接的或是Lio。对于yum instal,yum localinstall 都无法用(libcrypto.so.10 找不到,也就是rpm -qf /usr/lib64/libcrypto.so.10 openssl-libs-1.0.2k-8.el7.x86_64包被卸载了导致的),而yum localinstall也不可用,Wget和Scp也都无法用,最后,还好有nc,采用了nc侦听端口,进而传RPM,然后,通过rpm2cpio xx.rpm|cpio -div解压后把,缺少的so全mv到原来rpm安装的位置,救活了系统的sshd和yum install,说明这两个包太TM重要了不要删除,且在卸载rpm包时,特别是依赖这两个包有可能一并卸载时一定要睁大眼睛注意。
rpm -e grep-2.20-3.el7
rpm -e grep-2.20-3.el7 --noscripts
为依赖而移除:
coreutils x86_64 8.22-18.el7 @base 14 M
krb5-libs x86_64 1.15.1-8.el7 installed 1.9 M
openssl-libs x86_64 1:1.0.2k-8.el7 @base 3.1 M
导致了,sshd,wget,curl,mount全给坍塌了,连接不上服务器了都。
yum remove grep
1)正在处理依赖关系 grep,它被软件包 krb5-libs-1.15.1-8.el7.x86_64 需要:
rpm -q krb5-libs --requires|grep grep
grep
2)libgssapi_krb5.so.2()(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要
#rpm -q openssl-libs --requires|grep krb5
libgssapi_krb5.so.2()(64bit)
libkrb5.so.3()(64bit)
libkrb5.so.3(krb5_3_MIT)(64bit)
SO来自krb5-libs-1.15.1-8.el7.x86_64.rpm。
3)libcrypto.so.10()(64bit),它被软件包 coreutils-8.22-18.el7.x86_64 需要:
#rpm -q coreutils --requires|grep libcrypto
libcrypto.so.10()(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
用到yumdownloader和rpm2cpio解压rpm包到目录的cpio -div:
yumdownloader krb5-libs-1.15.1-8.el7.x86_64 #krb5-libs-1.15.1-8.el7.x86_64.rpm
nc 101.200.228.13* 4444 < /tmp/krb5-libs-1.15.1-8.el7.x86_64.rpm
nc -l 4444 > /tmp/krb5-libs-1.15.1-8.el7.x86_64.rpm
rpm2cpio openssl-libs-1.0.2k-8.el7.x86_64.rpm | cpio -div
用到nc重定向后还用到挪动命令mv:mv usr/lib64/* /usr/lib64 #发现用cp都不行,额的个神。
#rpm -ql openssl-libs-1.0.2k-8.el7 #查看rpm包里有哪些文件
/usr/lib64/libssl.so.10
/usr/lib64/libcrypto.so.10
服务器有一个叫iLO远程管理的东西,阿里云的这个应该也是类似的,即使SSHD进程挂了用SecureCRT的SSH连接不上了,可以通过管理控制台登陆远程操作服务器,应该是基于Websocket做的,救急是很有用的,就像这次就是一个活生生的例子:
工程师 64515 号 : 您好,我们根据您的问题情况检查进度如下:
[ 问题现象 ] 无法连接远程
[ 问题实例 ]
[ 处理意见 ] 您好,建议您使用管理控制台登陆远程,查看一下是否资源满了。
阿里云售后提示您: 对于涉及到文件操作,磁盘扩容,磁盘重置,磁盘更换,配置调整等操作,建议您先通过控制台手动创建快照,以免误操作带来的数据丢失风险。
原因:是我自己升级CentOS7.4作yum update时不小心把 grep 的RPM包删除了,导致openssl-libs和krb5-libs被不小心yum remove掉了,引起了SSDH服务挂掉,wget和curl以及mount挂载都丢了,现在我修好了,关单了,如下操作:
提了个单说用非SecureCRT的网页终端连接,试了一下果然,这个是串口连接的或是Lio。对于yum instal,yum localinstall 都无法用(libcrypto.so.10 找不到,也就是rpm -qf /usr/lib64/libcrypto.so.10 openssl-libs-1.0.2k-8.el7.x86_64包被卸载了导致的),而yum localinstall也不可用,Wget和Scp也都无法用,最后,还好有nc,采用了nc侦听端口,进而传RPM,然后,通过rpm2cpio xx.rpm|cpio -div解压后把,缺少的so全mv到原来rpm安装的位置,救活了系统的sshd和yum install,说明这两个包太TM重要了不要删除,且在卸载rpm包时,特别是依赖这两个包有可能一并卸载时一定要睁大眼睛注意。
rpm -e grep-2.20-3.el7
rpm -e grep-2.20-3.el7 --noscripts
为依赖而移除:
coreutils x86_64 8.22-18.el7 @base 14 M
krb5-libs x86_64 1.15.1-8.el7 installed 1.9 M
openssl-libs x86_64 1:1.0.2k-8.el7 @base 3.1 M
导致了,sshd,wget,curl,mount全给坍塌了,连接不上服务器了都。
yum remove grep
1)正在处理依赖关系 grep,它被软件包 krb5-libs-1.15.1-8.el7.x86_64 需要:
rpm -q krb5-libs --requires|grep grep
grep
2)libgssapi_krb5.so.2()(64bit),它被软件包 1:openssl-libs-1.0.2k-8.el7.x86_64 需要
#rpm -q openssl-libs --requires|grep krb5
libgssapi_krb5.so.2()(64bit)
libkrb5.so.3()(64bit)
libkrb5.so.3(krb5_3_MIT)(64bit)
SO来自krb5-libs-1.15.1-8.el7.x86_64.rpm。
3)libcrypto.so.10()(64bit),它被软件包 coreutils-8.22-18.el7.x86_64 需要:
#rpm -q coreutils --requires|grep libcrypto
libcrypto.so.10()(64bit)
libcrypto.so.10(libcrypto.so.10)(64bit)
用到yumdownloader和rpm2cpio解压rpm包到目录的cpio -div:
yumdownloader krb5-libs-1.15.1-8.el7.x86_64 #krb5-libs-1.15.1-8.el7.x86_64.rpm
nc 101.200.228.13* 4444 < /tmp/krb5-libs-1.15.1-8.el7.x86_64.rpm
nc -l 4444 > /tmp/krb5-libs-1.15.1-8.el7.x86_64.rpm
rpm2cpio openssl-libs-1.0.2k-8.el7.x86_64.rpm | cpio -div
用到nc重定向后还用到挪动命令mv:mv usr/lib64/* /usr/lib64 #发现用cp都不行,额的个神。
#rpm -ql openssl-libs-1.0.2k-8.el7 #查看rpm包里有哪些文件
/usr/lib64/libssl.so.10
/usr/lib64/libcrypto.so.10
服务器有一个叫iLO远程管理的东西,阿里云的这个应该也是类似的,即使SSHD进程挂了用SecureCRT的SSH连接不上了,可以通过管理控制台登陆远程操作服务器,应该是基于Websocket做的,救急是很有用的,就像这次就是一个活生生的例子:
工程师 64515 号 : 您好,我们根据您的问题情况检查进度如下:
[ 问题现象 ] 无法连接远程
[ 问题实例 ]
[ 处理意见 ] 您好,建议您使用管理控制台登陆远程,查看一下是否资源满了。
阿里云售后提示您: 对于涉及到文件操作,磁盘扩容,磁盘重置,磁盘更换,配置调整等操作,建议您先通过控制台手动创建快照,以免误操作带来的数据丢失风险。