Linux nc命令详解

Linux nc命令详解
http://blog.csdn.net/wang7dao/article/details/7684998

13:53 [[email protected]]$ type -a nc
nc is /usr/bin/nc

netcat 使用
http://wust1234.blog.163.com/blog/static/14811413201012102945949/

http://www.bitscn.com/plus/view.php?aid=48959

------------------------------------------------------

1、10.105.20.101
通过netcat命令收集11,12,13上的accessStat.log日志到10.105.20.101服务器上
cat /var/spool/cron/logwatch

#Copy log
01 1 * * * /bin/sh /home/logwatch/scpaccessStat.sh
03 1 * * * /bin/sh /home/logwatch/scpfollowStat.sh

2、/home/logwatch/scpaccessStat.sh

  将11,12,13上的日志 copy到
/opt/logs/data/stat/web/accessStat.log.${datetime}

#!/bin/sh
#Scp interlive log 
stdir=/opt/data/syslog/accesslog/ws
count=2
i=1
while [ $i -lt $count ]
do
datetime=`date -d "$i days ago" +%Y-%m-%d`
echo $datetime
filename=accessStat.log.${datetime}
#IP="10.105.20.13"
IP="10.105.20.11 10.105.20.12 10.105.20.13"
for loop in  $IP
do
  nohup nc -d -l 5555 >>${stdir}/$filename &
#ssh -i /home/logwatch/scpkey logwatch@$IP "nc 10.105.20.101</opt/logs/data/stat/web/accessStat.log.`date -d 2 days ago +%Y-%m-%d`"
  ssh -i /home/logwatch/scpkey logwatch@$loop "nohup nc 10.105.20.101 5555 </opt/logs/data/stat/web/accessStat.log.${datetime}"
  sleep 1
  echo $loop finished
done
i=`expr $i + 1`
done



3、/bin/sh /home/logwatch/scpfollowStat.sh

#!/bin/sh
#Scp interlive log 
stdir=/opt/data/syslog/follow/ws 

count=2
i=1
while [ $i -lt $count ]
do
datetime=`date -d "$i days ago" +%Y-%m-%d`
filename=followStat.log.${datetime}
#IP="10.105.20.13"
IP="10.105.20.11 10.105.20.12 10.105.20.13"
for loop in  $IP
do
  nohup nc -d -l 5555 >>${stdir}/$filename &
#ssh -i /home/logwatch/scpkey logwatch@$IP "nc 10.105.20.101</opt/logs/data/stat/web/accessStat.log.`date -d yesterday +%Y-%m-%d`"
  ssh -i /home/logwatch/scpkey logwatch@$loop "nohup nc 10.105.20.101 5555 </opt/logs/data/stat/web/followStat.log.${datetime}"
  sleep 1
  echo $loop finished
done
i=`expr $i + 1`
done



4、ssh -i /home/logwatch/scpkey logwatch@$loop "nohup nc 10.105.20.101 5555 </opt/logs/data/stat/web/accessStat.log.${datetime}"
登录到远程
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出--用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉--用于扫描时

nohup nc -d -l 5555 >>${stdir}/$filename &
ssh -i /home/logwatch/scpkey logwatch@$loop "nohup nc 10.105.20.101 5555 </opt/logs/data/stat/web/accessStat.log.${datetime}"

远程登录到10.105.20.13等机器,将/opt/logs/data/stat/web/accessStat.log.${datetime} 发送到 10.105.20.101 5555,同时在101上,将 5555端口数据发送到/opt/data/syslog/follow/ws/accessStat.log.${datetime}
文件上。

NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。
nc -l -p <portnumber> //这里-l参数表明nc处于监听模式,-p指定端口号.
nc -l -p 1234[假设这台主机ip为192.168.0.1]
然后从客户端输入,nc 192.168.0.1 1234 然后你从任一端输入的数据就会显示在另一端了.其实netcat的server和client的区别并不大,区别仅仅在于谁执行了-l来监听端口,一旦连 接建立以后,就没有什么区别了.

5、java程序将日志导入mysql中






你可能感兴趣的:(linux)