技术备忘2

技术备忘2_第1张图片

nc

nc扫描服务器端口

# nc -z localhost 1-10000   //扫描本机1到10000端口,获取打开的端口
Connection to localhost 22 port [tcp/ssh] succeeded!
Connection to localhost 80 port [tcp/http] succeeded!
Connection to localhost 111 port [tcp/sunrpc] succeeded!
Connection to localhost 199 port [tcp/smux] succeeded!
Connection to localhost 3306 port [tcp/mysql] succeeded!
Connection to localhost 6010 port [tcp/x11-ssh-offset] succeeded!
Connection to localhost 6011 port [tcp/*] succeeded!
# 

nc检测ip和端口

nc -w2 -z -t $ip $port   //根据返回值,可以判断是否succeed之类的!

-z      Specifies that nc should just scan for listening daemons, without sending any data to them.  It is  an error to use this option in conjunction with the -l option.

kumu

mysql  from unixtime

mysql> select from_unixtime(1631111148);

route添加删除

方法1、
####################router####################
# route del -net 192.168.0.0 netmask 255.255.255.0 dev eth1  
# route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
# route add default gw 192.168.0.1  //增加默认路由
# route del default   //删除默认路由
# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
# route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1

方法2、
####################ip router####################
# ip route | column -t
192.168.0.0/24  dev  eth1          scope  link
10.2.0.0/16     dev  eth2          proto  kernel  scope  link  src  10.2.0.111
default         via  10.2.255.254  dev    eth2
# ip route del 192.168.0.0/24 dev eth1
# ip route add 192.168.0.0/24 dev eth1
# ip route del via 10.2.255.254  //删除默认路由
# ip route add via 10.2.255.254  //增加默认路由
# ip route add 192.168.1.0/24 via 192.168.0.1  //增加静态路由,192.168.0.1为下一跳地址
# ip route del 192.168.1.0/24 via 192.168.0.1  //删除静态路由

shell下的重定向

0--标准输入

1--标准输出

2--错误输出

vim

vim-删除换行符,即使两行连接为一行

在命令状态下,在某一行上按"J"键将Join下一行。

vim末行模式小技巧

:r !ifconfig eth0     

.vimrc

set nu
set smarttab
set tabstop=4
set expandtab
set shiftwidth=4
set smartindent
set encoding=utf-8

vim"猪头"快捷键

vim里著名的"猪头"快捷键, 就是  zt, 效果是把光标所在行拉到屏幕最上头. 同样的还有 zz 和 zb, 分别是拉到屏幕中间和屏幕最下头!


usleep

sleep some number of microseconds

Nice[root@taolr:~]# time `usleep 1000000;echo nice`
0

real    0m1.033s
user    0m0.001s
sys     0m0.009s
Nice[root@taolr:~]# time `sleep 1;echo nice`             
0

real    0m1.025s
user    0m0.001s
sys     0m0.022s

。。。

rpmforge

分享一个第三方的yum源

### Name: RPMforge RPM Repository for RHEL 6 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

[rpmforge-testing]
name = RHEL $releasever - RPMforge.net - testing
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/testing
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-testing
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

RPM-GPG-KEY

/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag

The following public key can be used to verify RPM packages
downloaded from  http://dag.wieers.com/apt/  using 'rpm -K'
if you have the GNU GPG package.
Questions about this key should be sent to:
Dag Wieers <[email protected]>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.1 (GNU/Linux)

mQGiBD9JMT0RBAC9Q2B0AloUMTxaK73sD0cOu1MMdD8yuDagbMlDtUYA1aGeJVO6
TV02JLGr67OBY+UkYuC1c3PUwmb3+jakZd5bW1L8E2L705wS0129xQOZPz6J+alF
5rTzVkiefg8ch1yEcMayK20NdyOmhDGXQXNQS8OJFLTIC6bJs+7MZL83/wCg3cG3
3q7MWHm3IpJb+6QKpB9YH58D/2WjPDK+7YIky/JbFBT4JPgTSBy611+bLqHA6PXq
39tzY6un8KDznAMNtm+NAsr6FEG8PHe406+tbgd7tBkecz3HPX8nR5v0JtDT+gzN
8fM3kAiAzjCHUAFWVAMAZLr5TXuoq4lGTTxvZbwTjZfyjCm7gIieCu8+qnPWh6hm
30NgA/0ZyEHG6I4rOWqPks4vZuD+wlp5XL8moBXEKfEVOMh2MCNDRGnvVHu1P3eD
oHOooVMt9sWrGcgxpYuupPNL4Uf6B6smiLlH6D4tEg+qCxC17zABI5572XJTJ170
JklZJrPGtnkPrrKMamnN9MU4RjGmjh9JZPa7rKjZHyWP/z/CBrQ1RGFnIFdpZWVy
cyAoRGFnIEFwdCBSZXBvc2l0b3J5IHYxLjApIDxkYWdAd2llZXJzLmNvbT6IWQQT
EQIAGQUCP0kxPQQLBwMCAxUCAwMWAgECHgECF4AACgkQog5SFGuNeeYvDQCeKHST
hIq/WzFBXtJOnQkJGSqAoHoAnRtsJVWYmzYKHqzkRx1qAzL18Sd0iEYEEBECAAYF
Aj9JMWAACgkQoj2iXPqnmevnOACfRQaageMcESHVE1+RSuP3txPUvoEAoJAtOHon
g+3SzVNSZLn/g7/Ljfw+uQENBD9JMT8QBACj1QzRptL6hbpWl5DdQ2T+3ekEjJGt
llCwt4Mwt/yOHDhzLe8SzUNyYxTXUL4TPfFvVW9/j8WOkNGvffbs7g84k7a5h/+l
IJTTlP9V9NruDt1dlrBe+mWF6eCY55OFHjb6nOIkcJwKxRd3nGlWnLsz0ce9Hjrg
6lMrn0lPsMV6swADBQP9H42sss6mlqnJEFA97Fl3V9s+7UVJoAIA5uSVXxEOwVoh
Vq7uECQRvWzif6tzOY+vHkUxOBRvD6oIU6tlmuG3WByKyA1d0MTqMr3eWieSYf/L
n5VA9NuD7NwjFA1kLkoDwfSbsF51LppTMkUggzwgvwE46MB6yyuqAVI1kReAWw+I
RgQYEQIABgUCP0kxPwAKCRCiDlIUa4155oktAKDAzm9QYbDpk6SrQhkSFy016BjE
BACeJU1hpElFnUZCL4yKj4EuLnlo8kc=
=mqUt
-----END PGP PUBLIC KEY BLOCK-----

用它来安装一些小软件,真的很给力哟,要不是试试 tmux!你会得到很大的惊喜,因为tmux真的太酷了……   

upstream负载实现nginx与tomcat简单集群

......
server {
	listen 80;
	server_name tao.test.com;
	root /path/to/tomcat/webapps/ROOT;
	location / {
		proxy_pass http://tomcat1_servers;
		proxy_set_header Host $host;
		proxy_set_header X-Real-Ip $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		}
	access_log /var/log/nginx/tomcat1_access.log main;
}
.......
upstream tomcat1_servers {
	server 192.168.8.8:8080;
	server x.x.x.x:x;
}
......

sed操作连接文件注意

[root@taolr:/]# cat test.txt     
abc
def
ghi
jkl
mno
[root@taolr:/]# sed "s/abc/ABC/g" test.txt
ABC
def
ghi
jkl
mno
[root@taolr:/]# ln -s test.txt test1.txt
[root@taolr:/]# ll
...
lrwxrwxrwx.   1 root   root          8 Jul 16 14:29 test1.txt -> test.txt
-rw-r--r--.   1 root   root         20 Jul 16 14:28 test.txt
[root@taolr:/]# sed -i "s/abc/ABC/g" test1.txt
[root@taolr:/]# ll
...
-rw-r--r--.   1 root   root         20 Jul 16 14:30 test1.txt
-rw-r--r--.   1 root   root         20 Jul 16 14:28 test.txt

[root@taolr:/]# rm -rf test1.txt 
root@taolr:/]# ln -s test.txt test1.txt
[root@taolr:/]# sed -i -c "s/abc/ABC/g" test1.txt        //sed -c 注意点
[root@taolr:/]# ls -l
...
lrwxrwxrwx.   1 root   root          8 Jul 16 14:32 test1.txt -> test.txt
-rw-r--r--.   1 root   root         20 Jul 16 14:32 test.txt
[root@taolr:/]# cat test1.txt
ABC
def
ghi
jkl
mno
[root@taolr:/]# cat test.txt 
ABC
def
ghi
jkl
mno

man sed

-c, --copy

              use copy instead of rename when shuffling files in -imode.  While this will avoid breaking links (symbolic or hard), the resulting editing oper-
              ation is not atomic.  This is rarely the desired mode; --follow-symlinks is usually enough, and it is both faster and more secure.

进程内存使用率脚本

#!/bin/bash

ps -C $1 -O rss |gawk '{ count ++; sum += $2 };\
END { count --; print "Number of processes=",count;\
print "Mememory usage per process =", sum/1024/count, "MB";\
print "Total memory usage =", sum/1024, "MB" ;};'

使用:

shell>./mem.sh  java  
Number of processes = 3  
Memory usage per process = 153.672 MB  
Total memory usage = 461.016 MB  
shell>./mem.sh oracle  
Number of processes = 71  
Memory usage per process = 47.5638 MB  
Total memory usage = 3377.03 MB  


脚本转载

top_cpu

Cpu(s):表示这一行显示CPU总体信息

0.0%us:us = user mode! 用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。

0.7%sy:sy = system mode! 内核占用CPU时间百分比

0.0%ni:ni = low priority user mode (nice)! renice值为负的任务的用户态进程的CPU时间百分比。nice是优先级的意思

99.3%id:id = idle task! 空闲CPU时间百分比

0.0%wa:wa = I/O waiting! 系统I/O等待输入输出的的CPU时间百分比

0.0%hi:hi = servicing IRQs! CPU硬中断时间百分比

0.0%si:si = servicing soft IRQs! CPU软中断时间百分比

0.0%st:st = steal (time given to other DomU instances)

nginx的rewrite小记

① 生产环境下要存有谨慎,例如,修改了nginx的配置文件,一定要先“../nginx –t “ 检测语法,然后再“../nginx –s reload” 重新加载配置文件!注意细节!

②  If 模块可以放到Location模块的里面,也可以放到location的外面,server的里面,注意有 If 和没有 if 对 rewrite 的区别!如下:


(rewrite前面也有#号~所以实验是不对的啦~)

没有if 的话,如果b3.html 文件不存在了,那么不跳转!

如果有 if 的话,如果 b3.html 文件不存在了,那么就不会跳转了!要注意细节:


Notice: 后来又测试了几次,发现它都会跳转过去!不过有没有If !b3.html 没有的话,也会跳转的!?

③ 几个小实验

 3.1 index和autoindex

技术备忘2_第2张图片

 得到的实验结果是:

如果将目录 /www/server0 下面的 index.html文件更名或删除,访问的结果是:

另外,如果实验配置中,启动 autoindex,那么 agx_index失效之后,会启动 agx_autoindex模块

技术备忘2_第3张图片

该配置下的实验结果是:

技术备忘2_第4张图片

当然,如果找得到index.html,结果依然是:

。。。。。。

还有很多nginx的内容需要实践,最重要的是看需求是什么,然后用相应的配置。

极力推荐  agentzh的Nignx的教程

SecureCRT复制键

技术备忘2_第5张图片

crontab不能执行的5种原因

还算全面

1 crond服务未启动

crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,解决的方法是打开它:

crond

service crond start

如果提示crond命令不存在,可能被误删除了,CentOS下可以通过这个命令重新安装:

yum -y install crontabs

2 权限问题

比如:脚本没有x执行权限,解决方法:

增加执行权限,或者用bash abc.sh的方法执行

3 路径问题

有的命令在shell中执行正常,但是在crontab执行却总是失败。有可能是因为crontab使用的sh未正确识别路径,比如:以root身份登录shell后执行一个/root/test.sh,只要执行

./test.sh

就可以了。但是在crontab中,就会找不到这个脚本,比如写完整:

/root/test.sh

4 时差问题

因为服务器与客户端时差问题,所以crontab的时间以服务器时间为准。

5 变量问题

有时候命令中含有变量,但crontab执行时却没有,也会造成执行失败。

转载

这样我想起以前写的一篇新浪博客,与crontab相关,看第5小节的所谓的“思想的火花”吧!


du 查看当前一层目录的大小

shell> du  --max-depth=1   这个参数就是目录层数的意思
shell> du -h --max-depth=1

vmware共享主机wifi上网

①主机是win7共享wifi上网.

②edit--Virtual network editor--VMnet0--Bridged (connect VMs to directly to the external network) -- 下拉菜单 --选择 Bridged to 无线上网卡型号或者是 AutoMatic.

③虚拟机选择桥接.

tmux 主要快捷键

-- 基本使用

tmux   //运行C-b d   //返回主 shell , tmux 依旧在后台运行,里面的命令也保持运行状态tmux attach  //恢复tmux

-- 快捷键

tmux 的使用主要就是依靠快捷键,通过 C-b 来调用。

C-b ?  // 显示快捷键帮助

C-b C-o  //调换窗口位置

C-b 空格键  //采用下一个内置布局

C-b ! // 把当前窗口变为新窗口

C-b  "  // 模向分隔窗口

C-b % // 纵向分隔窗口

C-b q // 显示分隔窗口的编号

C-b o // 跳到下一个分隔窗口

C-b 上下键 // 上一个及下一个分隔窗口

C-b C-方向键 //调整分隔窗口大小

C-b & // 确认后退出 tmux

C-b c // 创建新窗口

C-b ,//修改当前窗口名称

C-b 0~9 //选择几号窗口

C-b c // 创建新窗口

C-b n // 选择下一个窗口

C-b l // 最后使用的窗口

C-b p // 选择前一个窗口

C-b w // 以菜单方式显示及选择窗口

C-b s // 以菜单方式显示和选择会话

C-b t //显示时钟


复制模式步骤:
我的控制键为:C-b
1、 C-b [ 进入复制模式
2、 参考上表移动鼠标到要复制的区域,移动鼠标时可用vim的搜索功能"/","?"
3、 按空格键开始选择复制区域
4、 选择完成后安enter键退出
5、 C-b ] 粘贴

几个常用命令:

shell>tmux list-session

shell>tmux new -s session-name

shell>tmux kill-session -tsession-name

 shell>tmux attach -tsession-name

参考

tmux 配置 & 使用

CentOS安装使用配置tmux

为什么使用tmux

linux终端利器 tmux

实体机64位不能安装64位虚拟机


进BIOS,开启CPU虚拟化的支持!

时间修改

date 081915062013.00 (月日时分年.秒)

clock -w //写入BIOS

SecureCRT字符编码相关

①Character encoding 选 "utf8"

②字体选择的时候可能要考虑.(--虽然在terminal中偶比较讨厌这种字体--)

技术备忘2_第6张图片

SecureCRT全屏

技术备忘2_第7张图片

shell多进程并发执行

for (( i = 0; i <= $(( $j - 1 )); i++ ))
    do
    {
     //内部逻辑... 注意变量的使用,最好封装到子shell中.
    } &   //关键是这个 "&" 符号.
    done 
    wait//等待所有子进程结束,不wait也OK,完了最后ps检查.

以HTTP方式共享当前文件夹的文件

$ python -m SimpleHTTPServer

这命令启动了Python的SimpleHTTPServer模块,考虑到Python在绝大多数的Linux发行版当中都默认安装,所以这个命令很可能是最简单的跨平台传文件的方法。命令执行后将在本机8000端口开放HTTP服务,在其他能访问本机的机器的浏览器打开http://ip:8000即打开一个目录列表,点击即可下载。

如果需要修改端口,如下操作即可:

$ python -m SimpleHTTPServer 8080

你可能感兴趣的:(技术备忘2)