背景:
ssh作连接时:
[root@localhost ~]# ssh -l xiangdong 192.168.1.108
Address 192.168.1.108 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
xiangdong@192.168.1.108's password:
Last login: Tue May  6 16:10:52 2014 from 10.70.38.87
/etc/sysconfig/bash-prompt-xterm: line 1: ifconfig: command not found

一般是在配置无密码登录时引起的:
http://hi.baidu.com/tanggaohui/item/4fcf24372225143f2f20c4d0

GSSAPIAuthentication  这个设置项到底是什么作用了 ?
在securecrt 关闭、开启 GSSAPI,在登陆服务器时好像没什么影响。。。
答:这个是可选,而且和顺序有关,你如果使用密码认证,你进系统,和下面那个都无任何关系
阅读全文
修改  /etc/ssh/ssh_config
vim  /etc/ssh/ssh_config
GSSAPIAuthentication no
----------------------------------
修改  /etc/ssh/ssh_config
vim  /etc/ssh/ssh_config
在server 把GSSAPIAuthentication yes
后面的yes 改成no
然后/etc/init.d/sshd restart
来自:http://jafy00.blog.51cto.com/2594646/810716
http://fleiou2008.blog.163.com/blog/static/819810172012631111922846/
零、一段监听端口的shell:

摘自:http://ajiewps.sinaapp.com/?p=266

一、通过shell脚本重定向实现监控memcache状态:

通过nc命令实现:
[chengmo@centos5 shell]$ (echo "stats")|nc 127.0.0.1 11211
二、通过重定向读取远程web服务器头信息:
(echo -e "HEAD / HTTP/1.1\n\n\n\n\n";sleep 2)|telnet www.baidu.com 80

参考:http://www.cnblogs.com/chengmo/archive/2010/10/22/1858302.html
背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况。

一、 linux ps命令,查看某进程cpu和内存占用率情况
[root@test vhost]# ps aux
USER       PID  %CPU    %MEM    VSZ   RSS TTY      STAT    START   TIME COMMAND
解释:
linux 下的ps命令
USER 进程运行用户
PID    进程编号
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小
RSS 进程使用的驻留集大小或者是实际内存的大小
TTY 与进程关联的终端(tty)
STAT 检查的状态:进程状态使用字符表示的,如R(running正在运行或准备运行)、S(sleeping睡眠)、I(idle空闲)、Z (僵死)、D(不可中断的睡眠,通常是I/O)、P(等待交换页)、W(换出,表示当前页面不在内存)、N(低优先级任务)T(terminate终止)、W has no resident pages
START (进程启动时间和日期)
TIME ;(进程使用的总cpu时间)
COMMAND (正在执行的命令行命令)
NI (nice)优先级
PRI 进程优先级编号
PPID 父进程的进程ID(parent process id)
SID 会话ID(session id)
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识
————————————由上面列的输出后于是可以通过awk进行对特定列进行输出————————————

查看用户的一个进程运行情况参数o:

摘自:http://www.commandlinefu.com/commands/view/7244/micro-ps-aux-by-memcpu




二、 linux ps命令,查看进程cpu和内存占用率排序
使用以下命令查看:
ps -aux | sort -k4,4n
ps auxw --sort=rss
ps auxw --sort=%cpu

摘录自:http://blog.chinaunix.net/uid-21389973-id-3292358.html
背景:昨天一QQ群里的兄弟问了个问题:并发数 和  TPS 有什么联系吗?我在微信里作了下简单回答如下,顺带今天了解下其它参数。
TPS 是Transactions Per Second 的 缩 写, 也 就 是 事 务 数/ 秒。 它 是软件测试结 果 的 测 量 单 位。 一 个 事 务 是 指 一 个 客 户 机 向 服 务 器 发 送 请 求 然 后 服 务 器 做 出 反 应 的 过 程。 客 户 机 在 发 送 请 求 时 开 始 计 时, 收 到 服 务 器 响 应 后 结 束 计 时, 以 此 来 计 算 使 用 的 时 间 和 完 成 的 事 务 个 数, 最 终 利 用 这 些 信 息 来 估 计 得 分。 客 户 机 使 用 加 权 协 函 数 平 均 方 法 来 计 算 客 户 机 的得 分,测试软件就是 利 用 客 户 机 的 这 些 信 息 使 用 加 权 协 函 数 平 均 方 法 来 计 算 服 务 器 端 的 整 体TPS 得 分。

如求TPS,例子,一个软件测试以并发2000,发现其经过1分钟后软件给出Response Time(sec)一条曲线,在0.2左右。
此时TPS=并发数/平均响应时间(平均)=2000/0.2 = 10000,1w并发,也就是说能接受1万的并发值,注意是平均响应。阅读全文
C语言中获得系统当前的日期和时间

一、代码如下:


二、执行如下:
[root@test http_pcap_codes]# ./a.out
Year:  2014
Month:  2
Day:  8
Hour:  16
Minute:  55
Second:  9
Weekday:  6
Days:  38
Isdst:  0

上面的这些日期可以通过c函数连接起来实现:20140208 的按时间的目录结构
原代码来自里面localtime写错了:
http://www.linuxidc.com/Linux/2012-07/65059.htm
直接整数转也成:
snprintf(szValue,100,"%04d%02d%02d",1900+p->tm_year,1+p->tm_mon,p->tm_mday);                                                        
printf("%s",szValue)

整数转为char后再进行snprintf转代码%s(简单示例),snprintf参考:http://jackxiang.com/post/3736/
操作TortoiseSVN时,报如下错误:
      Command Update
      Repository UUID 'xxxxxxxx' doesn't match expected
      UUID 'xxxxxxxx'
      Finished!

这个在windows下是看不到uuid的,但是在Linux下的svn client是能看到的,分别讲下在哪儿:
1)Windows下的小乌龟是在.svn/wc.db里能找到,但是不报错这个是没法直接查到的,打开这个db文件搜索下svn的http地址内容就在它旁边能找到uuid,长得像这样,里而且多个一样的URL,这样不太好找:9b35ebc1-e2f0-4571-a2aa-cca3a5a3be64。
2)Linux下可直接用svn info能获取到,如svn info svn目录,或svn info svn的http地址信息。

sha1$e059139d119b69af6510ac5971fcfb4aa3bbbc64

      可以看到,原来Repository创建者的UUID是前者,而现在所操作的是后者的UUID。因此,目前的解决办法是:使用相关命令更新Repository的UUID。

具体办法如下:
      1、首先查看项目的所有者的UUID
      # svnlook uuid /var/svn/repos
      xxxxxxx

      2、更新项目的UUID
      # svnadmin setuuid /var/svn/repos xxxxxxx

      3、查看一下更新后的UUID
      # svnlook uuid /var/svn/repos

     是在linux下的tortoise服务器的仓库里面看,如下:
         /usr/local/subversion/bin/svnlook uuid  /data/subversion/levoo
         400fc8d2-0ce3-4270-bfba-d81f7d67c23b


附:
      UUID是repository创建时自动生成的一个随机数, SVN Client利用UUID判断是否为同一个resp。一般遇到UUID不同时,需要重新checkout

摘自:http://blog.csdn.net/xuzhuang2008/article/details/8474229


1.  客户端   在工作目录上右键-> TortoiseSVN-> 重新定位(Relocate)
2.   如果显示 uuid冲突时, 先显示现有版本,再设置新的id。

    服务器在项目上右键->所有任务->start Command Prompt        
    H:\backup\DS9000>svnlook uuid  .
           3219074f-d8da-2248-814a-399c5442be0a

    H:\backup\DS9000>svnadmin  setuuid   .  a3880bf4-0eb5-d74c-8d1e-3d6c595fa54e

    H:\backup\DS9000>svnlook uuid  .
     a3880bf4-0eb5-d74c-8d1e-3d6c595fa54e

来自:http://blog.sina.com.cn/s/blog_727b5d7c0100ogo1.html
背景:而我的情况是因为强行卸载了rpm -e libcap-devel-1.10-26 --allmatches --nodeps 后,
         导致:Error while loading shared libraries: libcap.so.1: cannot open shared object file  。

[root@test http_pcap_codes]# rpm -qa|grep libcap  
libcap-1.10-26
libcap-devel-1.10-26
libcap-1.10-26
libcap-devel-1.10-26
发现有两个一样的包,我就强制卸载rpm包遭遇error: specifies multiple packages,
rpm -e libcap-devel-1.10-26
error: "libcap-devel-1.10-26" specifies multiple packages,后强制采用了:
rpm -e libcap-1.10-26 --allmatches --nodeps 卸载后,root sudo的时候,登录提示:
Error while loading shared libraries: libcap.so.1: cannot open shared object file  !
还好及时发现,后又安上了,一查原来还真有这个libcap.so.1,如下:
[root@test dbus-1.8.0]# rpm -ql libcap-1.10-26|grep libcap.so.1                    
/lib64/libcap.so.1
/lib64/libcap.so.1.10
/lib/libcap.so.1
/lib/libcap.so.1.10

也就是说明,这个Linux的sudo会用这个了,了解。


——————————————————
安装了CentOS6.4,发现里面有很多默认安装的软件都不需要,比如mysql,apache,php等等,用rpm -e xxxx卸载,发现不好用,man rpm看了下,有个强制卸载的选项:
–allmatches
Remove all versions of the package which match PACKAGE_NAME. Normally an error is issued if PACKAGE_NAME matches
multiple packages.
rpm -e --allmatches --nodeps mysql-5.0.77-3.el5
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave
ok,系统自带的旧版本MySQL卸载完成。

摘自:http://blog.163.com/chenyao_2000/blog/static/128010930201110181464242/

实践如下:
[root@localhost htdocs]# rpm -e --allmatches --nodeps mysql-5.0.95-5.el5_9
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave


一、mv对Linux下的svn目录好像挪动不了,如下:

结论:
mv def 777/.  像这样直接挪动一个目录是没有问题的,隐藏的也全挪动过去,而如果用*号mv挪动,则隐藏的文件挪动不过去,所以得注意这个问题,特别是svn里svn co后,里面有好几个的隐藏文件,要注意,否则在更新时会出错。

二、cp也有这个问题:
linux下隐藏文件是.开头的,所以要复制隐藏文件直接在文件开头加个".“。也有mv的*不会拷贝隐藏文件的问题,如:
cp -Rf ../777/* ./.  这样是拷贝不过来隐藏文件滴。
这样目录直接对拷贝也就没有问题了:
cp -Rf 777 bbb

三、删除也有*删除不了隐藏的问题喔。


四、Linux cp命令如何拷贝整个目录下所有文件 :
背景:拷贝时出现把目录拷贝过去了,再就是假如linux下有隐藏文件,怎么也一起拷贝过去?
cp -r /home/test/rpmbuild/BUILD/jdk1.8.0_66/ /home/test/rpmbuild/BUILDROOT/usr/local/java
ls /home/test/rpmbuild/BUILDROOT/usr/local/java
jdk1.8.0_66

这个点很重要:
cp -r /home/test/rpmbuild/BUILD/jdk1.8.0_66/. /home/test/rpmbuild/BUILDROOT/usr/local/java

ls /home/test/rpmbuild/BUILDROOT/usr/local/java
bin        javafx-src.zip  man          THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT  jre             README.html  THIRDPARTYLICENSEREADME.txt
db         lib             release
include    LICENSE         src.zip
———————————————————————————————————————————————
如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了。

比如要把/home/usera拷贝到/mnt/temp,首先想到的就是

cp -R /home/usera/* /mnt/temp

但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的。

那如何才是正确的方法呢?有人说用-a选项,有人说用find加管道。

其实没这么复杂,Google了之后,学了一招。原来只有用“.”当前目录代替“*”就好了
C/C++中的strncpy()函数功能为将第source串的前n个字符拷贝到destination串,原型为:

char * strncpy ( char * destination, const char * source, size_t num );
各个参数的含义显而易见,其中返回值与destination相同。


这个函数会出现三种情况:
1、num<source串的长度(包含最后的'\0'字符):那么该函数将会拷贝source的前num个字符到destination串中(不会自动为destination串加上结尾的'\0'字符);
2、num=source串的长度(包含最后的'\0'字符):那么该函数将会拷贝source的全部字符到destination串中(包括source串结尾的'\0'字符);
3、num>source串的长度(包含最后的'\0'字符):那么该函数将会拷贝source的全部字符到destination串中(包括source串结尾的'\0'字符),并且在destination串的结尾继续加上'\0'字符,直到拷贝的字符总个数等于num为止。

————————————————————————————————————
三种情况,自己做个实践:
情况一:
代码:

编译:
[root@localhost strncpy]# make strncpy
cc     strncpy.c   -o strncpy
运行:
[root@localhost strncpy]# ./strncpy
abc
————————————————————————————————————
情况二:
代码:

运行:
[root@localhost strncpy]# ./strncpy
abcdefghi
————————————————————————————————————
情况三:
代码:

运行:
[root@localhost strncpy]# ./strncpy
abcd
参考:http://www.cnblogs.com/unimous/archive/2012/03/05/2381151.html
linux中fork同时创建多个子进程的方法

正确的使用Linux中的用fork()由一个父进程创建同时多个子进程 的格式如下:
int status,i;
for (i = 0; i < 10; i++)
{
  status = fork();
  if (status == 0 || status == -1) break;//每次循环时,如果发现是子进程就直接从创建子进程的循环中跳出来,不让你进入循环,这样就保证了每次只有父进程来做循环创建子进程的工作
}
if (status == -1)
{
  //error
}
else if (status == 0) //每个子进程都会执行的代码
{
  //sub process
}
else
{
  //parent process
}
来自:http://blog.sina.com.cn/s/blog_605f5b4f0100x444.html
国内机房经常因为没有备案而过滤网站,并且这种过滤是不定时的!太让人蛋疼!

瑞豪开源给客户提供如下方法临时解决这个蛋疼的问题,等备案下来之后就可以恢复正常。

客户在服务器上设置一下端口转发,把服务器的8989端口重定向到80端口去。Linux上可以通过如下命令:

iptables -t nat -I PREROUTING -p tcp --dport 8989 -j REDIRECT --to-port 80 来实现。

然后客户把自己的域名指向修改到我们提供的转发IP地址:103.28.45.240

最后,我们在103.28.45.240上面加一下客户的域名,就可以为客户转发了,客户的域名也就可以正常打开了。

来自:http://rashost.com/blog/nobeian-redirect
环境: Ubuntu
1. 开启IO监控
sudo sysctl vm.block_dump=1
2. IO监控开启后,系统将记录程序对所有硬盘块的访问,通过dmesg查看
dmesg
[442825.284270] mysqld(11600): READ block 6676888 on xvdb2 (8 sectors)
[442825.289893] mysqld(11600): READ block 11543240 on xvdb2 (8 sectors)
[442825.291317] mysqld(11600): READ block 11543248 on xvdb2 (24 sectors)
3. 使用awk汇总,得到占用磁盘最多的进程
dmesg |awk -F " " '{print $2}'|sort|uniq -c|sort -rn|head -n 100
1564 mysqld(11600):
994 python(11474):
302 nginx(6171):
136 mysqld(29743):
126 mysqld(15528):
71 ntpd(772):
62 mysqld(16837):
4. 调试完毕后,别忘了关闭IO监控。
sudo sysctl vm.block_dump=1

摘自:http://www.luochunhui.com/linux-io-dmesg/
参考:http://blog.slogra.com/post-317.html
实践:
[root@my htdocs]# vi /proc/sys/vm/block_dump
[root@my htdocs]# sysctl vm.block_dump=1
vm.block_dump = 1
[root@my htdocs]# dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10
    195 ACPI
    194 pci 0000
     63   alloc kstat_irqs on node 0
     53 pnp 00
     48 ioatdma 0000
     34 igb 0000
     34 EDAC sbridge
     29 flush-253
     26 SRAT
     24 pci_bus 0000
[root@my htdocs]# sysctl vm.block_dump=0    
vm.block_dump = 0
简单好用的计算器: bc
如果我想要使用简单的计算器呢?很容易呀!就使用 bc 即可!在输入 bc 之后, 显示出版本信息之后,就进入到等待指示的阶段。如下:
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. _<==这个时候,光标会停留在这里等待您的输入
事实上,我们是『进入到 bc 这个指令的工作环境当中』了! 就好象我们在 Windows 里面使用calc一样!所以,我们底下尝试输入的资料, 都是在 bc 程序当中在进行运算的动作。所以,您输入的资料当然就得要符合 bc 的要求才行! 在基本的 bc 计算器操作之前,先告知几个使用的运算子好了:
+ 加法
- 减法
* 乘法
/ 除法
^ 指数
% 余数 好!让我们来使用 bc 计算一些咚咚吧!
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1+2+3+4  <==只有加法时 10 7-8+3+2 4 100*52 5200 10%3     <==计算『余数』 1 10^2 100 10/100   <==这个最奇怪!不是应该是 0.1 吗? 0 quit     <==离开 bc 这个计算器
在上表当中,粗体字表示输入的资料,而在每个粗体字的底下就是输出的结果。 咦!每个计算都还算正确,怎么 10/100 会变成 0 呢?这是 因为 bc 预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=number ,那个 number 就是小数点位数,例如:
[root@linux ~]# bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. scale=3     <==没错!就这! 1/3 .333 340/2349 .144 quit
#Linux


来自:http://hi.baidu.com/huazhixu_127/item/f962c3d7f728cd2a38f6f7d5
Linux下的bc计算器移植到windows下:http://download.csdn.net/download/u012795832/6532695
阅读全文
背景:通过top下Namp的生产环境,出现某一个PHP耗CPU 100%。(先top后再:shift+P,按内存:shift+M)
————————————————————————————————————————————————————
(1)查看php-fpm进程编号:
pidof php-fpm
12560 12559 12558 12557 12556 12555 12554 12553 12552 12551 12550 12549 12548 12547 12546 12545 12544 12543 12542 12541 12540 12539 12538 12537 12536 12535 12534 12533 12532 12531 12530 12529 12528
(2)通过awk把上面的进程号形成top -p pid1 -p pid2的形式:
pidof php-fpm|awk '{gsub(/ /i," -p ");print}'
-p 2560  -p 2559  -p 2558  -p 2557  -p 2556  -p 2555  -p 2554  -p 2553  -p 2552  -p 255 -p   -p 2550  -p 2549  -p 2548  -p 2547  -p 2546  -p 2545  -p 2544  -p 2543  -p 2542  -p 254 -p   -p 2540  -p 2539  -p 2538  -p 2537  -p 2536  -p 2535  -p 2534  -p 2533  -p 2532  -p 253 -p   -p 2530  -p 2529  -p 2528

(3)用top只看php进程号,最后top查help,是这样的( -p pid [,pid ...]):
  pidof php-fpm|awk '{gsub(/ /i," -p ");print "top "$0}'
top  -p 2560  -p 2559  -p 2558  -p 2557  -p 2556  -p 2555  -p 2554  -p 2553  -p 2552  -p 255 -p   -p 2550  -p 2549  -p 2548  -p 2547  -p 2546  -p 2545  -p 2544  -p 2543  -p 2542  -p 254 -p   -p 2540  -p 2539  -p 2538  -p 2537  -p 2536  -p 2535  -p 2534  -p 2533  -p 2532  -p 253 -p   -p 2530  -p 2529  -p 2528

(4)加上管道并sh执行即可(注意pid不能大于20个PHP进程):
pidof php-fpm|awk '{gsub(/ /,",");print "top -p "$0}'
加上sh:
pidof php-fpm|awk '{gsub(/ /,",");print "top -p "$0}'|sh
试下PHP的守护进程:
pidof php|grep -v grep|awk '{gsub(/ /,",");print "top -p "$0}'|sh
        top: failed tty get
所以,最后还是得贴上去才行,会报上述的错。
top -p 29886,29877,24518,1895,1885
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND      
29886 www       15   0  120m  20m 2428 S    0  0.1   0:00.63 php          
29877 root      21   0     0    0    0 Z    0  0.0   0:00.02 php <defunct>
24518 www       15   0  108m 9468 2524 S    0  0.1   0:34.99 php          
1895 www       15   0  112m  13m 2424 S    0  0.1   0:02.48 php          
1885 root      24   0     0    0    0 Z    0  0.0   0:00.02 php <defunct>

(5)通过对PHP的集中top后,再通过对高CPU进行监控,如12542的进程PID:
strace -p 12542

————————————————————————————————————————————————————
TOP中只查看某个或某些进程的信息


top中使用CPU或MEM排序,还是看不到我们想了解的进程的相关信息;
这时就可以指定对某个或某些进程进行TOP信息显示;


1、查看某个进程的信息
例:mysqld的信息
(1)得到mysqld进程的pid
[root@6 ~]# pidof mysqld
21538

(2)top指定查看PID
[root@6 ~]# top -p 21538

top - 09:15:06 up 30 days, 53 min,  3 users,  load average: 0.07, 0.22, 0.23
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.0%us,  6.9%sy,  0.2%ni, 89.4%id,  0.3%wa,  0.1%hi,  0.1%si,  0.0%st
Mem:   1035140k total,   994888k used,    40252k free,   383072k buffers
Swap:  2048248k total,       80k used,  2048168k free,   237456k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                        
21538 mysql     15   0  146m  21m 4372 S  0.0  2.1   3:03.84 mysqld


2、查看某些进程的信息
例:mysqld/httpd的信息
(1)得到mysqld/httpd进程的pid
[root@6 ~]# pidof mysqld
21538

[root@6 ~]# pidof httpd
31117 31116 31115 31114

(2)top指定查看PID
[root@6 ~]# top -p 21538,31117,31116,31115,31114

top - 09:20:05 up 30 days, 58 min,  3 users,  load average: 0.37, 0.24, 0.23
Tasks:   5 total,   0 running,   5 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.0%us,  6.9%sy,  0.2%ni, 89.4%id,  0.3%wa,  0.1%hi,  0.1%si,  0.0%st
Mem:   1035140k total,   994364k used,    40776k free,   383404k buffers
Swap:  2048248k total,       80k used,  2048168k free,   237560k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                        
21538 mysql     15   0  146m  21m 4372 S  0.0  2.1   3:03.86 mysqld                                                                          
31117 apache    15   0 60036 8428 4668 S  0.0  0.8   0:00.48 httpd                                                                          
31116 apache    15   0 60308 9.9m 6288 S  0.0  1.0   0:00.48 httpd                                                                          
31115 apache    15   0 60100 8552 4756 S  0.0  0.8   0:00.48 httpd                                                                          
31114 apache    15   0 59892 6452 3060 S  0.0  0.6   0:00.41 httpd

——————————————————————————————————————————
来自:http://blog.csdn.net/zhangfn2011/article/details/7488746
背景:在小公司里没有多少台机器,运维或开发想执行命令则用到,大批量机器上千、万台则需要有zoomkeeper和shell配合,以web形式提供出管理工具,如codebuilder、pms、ccs等。
一:Securecrt同时操作多个会话窗口:
1,选中:查看/交互窗口
2,开启多个会话窗口
3,右击任何一个会话窗口下面的交互窗口,选中:发送交互到所有标签
4,在交互窗口输入命令,就会同时在多个会话窗口执行了!
来自:http://blog.itpub.net/9240380/viewspace-668253
参看:http://blog.sina.com.cn/s/blog_8e5b826701011msc.html

实践如下,我的是英文版本,如下:
在SecureCRT下的view下选中Chat wWndows后,下面出现一个小窗框,然后在小窗口上面点右键盘选中:Send Chat to All Tabs.即可。


背景:有时线上的mysql比较怪异,所以,有这个标签进行分组并一点就Ok的玩意会相对方便不容易出错些:
二:SecureCRT使用按钮栏进行密码发送常用操作:
1)使用按钮栏:选择查看-》按钮栏会显示按钮栏,勾选按钮栏,勾选之后最下面多出了一个按钮栏,在上面可以新建的按钮。
2)新建按钮如:鼠标移动到按钮栏上,单击右键,会有new button ,new button bar,delete  button bar选项。第一个是在按钮栏添加按钮,new button bar是增加新的按钮栏,最后是删除按钮栏。
3)按钮栏的作用:就是单击它可以和secureCRT窗口进行交互,比如我要连接某个机器,但是机器名很长不想记录怎么办?那就通过新建一个按钮来解决啊。如下图所示。注意send String是按钮发送的命令,如果不加“\n”,那么不会执行,需要在窗口中显示的输入回车才能执行,label中是新建的button名称,一般命名为机器名或者操作名称。有了这个功能就可以把多个机器的地址分别建一个button,这样只需要输入一次,就可以不用记忆繁琐的机器名而进行机器的远程连接了。
3)按钮栏的下拉框分组:(1)默认(default)(2)线上地址(3)数据库三个按钮栏了。如果不需要这么多怎么办?删除就可以了。同样的,增加的button也可以修改、删除。

来自,参考有图:http://jingyan.baidu.com/album/d3b74d64a752671f77e6092a.html
背景:有时多台机器时通过nsf进行用户统一写入在看日志时需要看到相同用户,而多台的用户一样是www,但是其id不一样,导致不同服务器看上去不一致,为此需要修改一样。
添加用户名时指定id、修改用户id、修改组的id、修改用户名、修改组名:

FreeBSD:

#rmuser username(需要删除的用户名)
#passwd username(要修改密码的用户名)
======================================================
因为先前有一个账户是xiangdong,我后再删除再添加一次(没有-d参数指定目录)出现:
bash-3.2$ ssh -lxiangdong localhost
Could not create directory '/home/xiangdong/.ssh'.
Could not chdir to home directory /home/xiangdong: Permission denied

chown -R xiangdong /home/xiangdong/
再次登录Ok。

没加d也可以后面再加上:
linux命令 用什么命令设置用户home目录:
id jack
uid=508(jack) gid=0(root) groups=0(root)
usermod -u508 -d /home/xiangdong -m /home/jack
其它操作:http://urchin.blog.51cto.com/4356076/987186

当然也可手动操作,用直接修改Linux下的两个文件进行修改即可,
如linux下的www用户的uid是701,www的组也是711,现在要修改为527和498,得修改两个文件:
1:打开文件 /etc/passwd配置文件
修改/etc/passwd文件进行对www用户的uid和gid进行修改修改对应的527和498:
vi /etc/passwd
www:x:701:701::/home/www:/sbin/nologin

2.打开文件 /etc/group文件:
vi /etc/group
www:x:701:    
把701修改为498。

3:如果有家目录则把JACK这个帐户对应的默认目录  /home/JACK改为/home/JACK/code即可,然后保存。

如果有多台,如何批量一次性修改及查看修改是否成功呢?用如下ansible命令即可,很是方便:
qrtool.jackxiang.com.yml

运行完上面这个脚本后,再检查是否有30台(qr_web有30台),
ansible qr_web -m shell -a"id www"|grep"uid=527(www) gid=498(www)"|wc  有30台就对了。
如果不放心重新批里启动一下nginx和php-fpm如下:
ansible qr_web -m shell -a"service nginx restart && service php-fpm restart"        
对之前的www的uid的701作修改目录及代码的chown权限为新的uid:
ansible qr_web -m shell -a"chown -R www:www /data/www"  
阅读全文
1)查看当前用户下的cron任务:crontab   -l  
2)编辑当前用户的定时任务:crontab -e
3)编辑root用户linuxso的定时任务: crontab -u  root  -e

阅读全文
背景:查一个日志,出现48的用户值:
-rwxrwxrwx 1   48   48 1421133 Dec  5 15:14 checkdaemon_album_20131205.php
-rwxrwxrwx 1 root root 1431216 Dec  5 15:14 checkdaemon_report_20131205.php
-rwxrwxrwx 1 www  www  3752063 Dec  5 15:14 core-20131205.php
————————————————————————————————————————————

用户的ID就是USER ID喽,也就是常说的UID.有一个文件专门存放UID信息的,在/etc/passwd里。root用户的ID是0.
从1~499的大多是系统服务或软件厂商自定议的ID。而普通的用户的UID是从500开始往后依次加1.

实践示例:
你也可以用 cat /etc/passwd | grep <你的用户名>  来查看你的ID。

我是:504,而su成root后,
查看当前root用户,也可直接输入:id

当然,也可以通过:

也可看到root是0,我还是504:
root:x:0:
xiangdong:x:504:
这儿也可以查看,特殊在它能查到一些非登录的用户Id:

www:x:48:48::/home/www:/sbin/nologin

最后,用finger吧:
[root@localhost 20131205]# finger 48
-bash: finger: command not found
yum install finger

finger www
[root@localhost 20131205]# finger www
Login: www                         Name:
Directory: /home/www         Shell: /bin/bash
Never logged in.
No mail.
No Plan.

来自:http://zhidao.baidu.com/link?url=z6Ca_wyf6UwLZGun4pb8o8Lj3VxyUwhzQ4XzVZGOSARChu935hy_YOlSJPagp7eRi2KbVuE1Z17t6TcQCNwaAa
背景:我在写http://jackxiang.com/post/4070/ 时发现的(Post并cookie,想看http头不行),一看还真有这个问题,主要是http头部Cookie值是否真送出去了以及Post数据是否也按指定方式给Post出去,查看加密前的待发送的数据的包头信息,以查看待发送头部的cookie信息等都有用的。于是做下记录。

-d是用post提交表单,-I是只读取http head,提示错误Warning: You can only select one HTTP request!
来自:http://bbs.csdn.net/topics/320186919
实践:的确Warning: You can only select one HTTP request!

国外:http://stackoverflow.com/questions/286982/curl-post-data-and-headers-only
Curl post data and headers only
I want to get the headers only from a curl request
curl -I www.google.com
All grand. Now I want to do that but to pass in post data too:
curl -I -d'test=test' www.google.com
But all I get is:
Warning: You can only select one HTTP request!
Anyone have any idea how to do this or am I doing something stupid?

2 Answers
The -I option tells curl to do a HEAD request while the -d'test=test' option tells curl to do a POST, so you're telling curl to do two different request types.
curl -s -d'test=test' -D- -o/dev/null www.google.com
or, on Windows:
curl -s -d'test=test' -D- -onul: www.google.com
That is the neatest way to do this as far as I can find. The options are:
    -D- Dump the header to the file listed, or stdout when - is passed, like this.
    -o/dev/null Send the body to the file listed. Here, we discard the body so we only see the headers.
    -s Silent (no progress bar)

-d means you are sending form data, via the POST method. -I means you are just peeking at the metadata via HEAD.
I'd suggest either
    Download to /dev/null and write the headers via the -D headerfile to the file headerfile
    Use -i to include the headers in the answers and skip everything from the first empty line.
Old, I know, but I would suggest adding -s to clean up the output a little bit.

最后使用方法:

1)于是,返回服务端的头很容易看到,如下:
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 02 Dec 2013 09:57:59 GMT
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding

2)最后,想看发出的请求头?
背景里说的:http头部Cookie值是否真送出去了以及Post数据是否也按指定方式给Post出去
请求的头用 curl 是看不到的
—————解决方案—————
抓包软件
(1)Windows下:firefox用firebug/httpfox/fiddler2/httplook/HttpAnalyzerStdV7
网卡用SmartSniff
(2)Linux下:用tcpdump抓包后,sz到windows上用wireshark查看http包发送的请求头:
        File->ExportObjects->HTTP->找到发送的请求链接(因为还有一个回包的请求,所以要区分开),选中后,在主界面会自动定位到,展开:
        Hypertext Transfer protocol ,就能看到如下我前面发的cookie:

  
  而Post数据就在:HTML Form URL Encoded: application/x-www-form-urlencoded 下展开里面:
  
分页: 18/24 第一页 上页 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 下页 最后页 [ 显示模式: 摘要 | 列表 ]