当前位置:  互联网>综合
本页文章导读:
    ▪Linux Shell脚本编程--nc命令使用详解      linux nc命令使用详解     功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位.........
    ▪solr对跨服务器表联合查询的配置      目前我们有两个库,不在同一个服务器上,如:A服务器上库有个account表,B服务器上有个两个库:其实就是把一个大数据表拆分成两个库(这块我不明白为什么负责这个开发的人把一个表放在.........
    ▪递归和非递归实现链表反转      链表反转是面试笔试常考题目,直接贴代码。 反转函数如下: //思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面 ListNode * ReverseList(ListNode * head) { /.........

[1]Linux Shell脚本编程--nc命令使用详解
    来源: 互联网  发布时间: 2013-10-26

linux nc命令使用详解

   

功能说明:功能强大的网络工具

语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

参 数:

 -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。

 -G<指向器数目> 设置来源路由指向器,其数值为4的倍数。

 -h  在线帮助。

 -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。

 -l  使用监听模式,管控传入的资料。

 -n  直接使用IP地址,而不通过域名服务器。

 -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。

 -p<通信端口> 设置本地主机使用的通信端口。

 -r  乱数指定本地与远端主机的通信端口。

 -s<来源位址> 设置本地主机送出数据包的IP地址。

 -u  使用UDP传输协议。

 -v 详细输出--用两个-v可得到更详细的内容

 -w<超时秒数> 设置等待连线的时间。

  -z  使用0输入/输出模式,只在扫描通信端口时使用。

 

nc使用示例

 

1. 端口扫描

# nc -v -w 2 192.168.2.34 -z 21-24

nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused

Connection to 192.168.2.34 22 port [tcp/ssh] succeeded!

nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused

nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused

 

2. 从192.168.2.33拷贝文件到192.168.2.34

在192.168.2.34上: nc -l 1234 > test.txt

在192.168.2.33上: nc 192.168.2.34 < test.txt

 

3. 简单聊天工具

在192.168.2.34上: nc -l 1234

在192.168.2.33上: nc 192.168.2.34 1234

这样,双方就可以相互交流了。使用ctrl+C(或D)退出。

 

4. 用nc命令操作memcached

1)存储数据:printf“set key 0 10 6rnresultrn” |nc 192.168.2.34 11211

2)获取数据:printf“get keyrn” |nc 192.168.2.34 11211

3)删除数据:printf“delete keyrn” |nc 192.168.2.34 11211

4)查看状态:printf“statsrn” |nc 192.168.2.34 11211

5)模拟top命令查看状态:watch“echo stats” |nc 192.168.2.34 11211

6)清空缓存:printf“flush_allrn” |nc 192.168.2.34 11211 (小心操作,清空了缓存就没了)

 

5. nc -p 1234 -w 5 host.example.com 80

建立从本地1234端口到host.example.com的80端口连接,5秒超时

nc -u host.example.com 53

u为UDP连接

 

6. echo -n "GET / HTTP/1.0"r"n"r"n" | nc host.example.com 80

连接到主机并执行

 

7. nc -v -z host.example.com 70-80

扫描端口(70到80),可指定范围。-v输出详细信息。

 

 

8. 远程拷贝文件

从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,

 

server2上运行:

 

root@hatest2 tmp]# nc -lp 1234 > install.log


    
[2]solr对跨服务器表联合查询的配置
    来源: 互联网  发布时间: 2013-10-26

目前我们有两个库,不在同一个服务器上,如:A服务器上库有个account表,B服务器上有个两个库:其实就是把一个大数据表拆分成两个库(这块我不明白为什么负责这个开发的人把一个表放在两个库里,而且每个库有多个表结构相同的表),比如 follow1有个表A B和C,follow2有个C D和E表,其实都是存放相同的数据,这六个表的数据差不多有1000W,现在建索引我这边需要一个多小时,data-config.xml配置如下

<dataConfig>

   <dataSource type="JdbcDataSource" name="ds-1" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://IP1:3306/data1" user="***"
   password="*******" batchSize="-1"/>
   <dataSource type="JdbcDataSource" name="ds-2" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://IP2:3306/data2" user="***"
   password="********" batchSize="-1"/>
   <dataSource type="JdbcDataSource" name="ds-3" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://IP2:3306/data3" user="****"
   password="******" batchSize="-1"/>

 <document name="follow_log">
      <field column="logId" name="logId"/>
      <field column="accountId" name="accountId"/>
      <field column="targetAccount" name="targetAccount"/>
      <field column="followFlag" name="followFlag"/>
      <field column="friendFlag" name="friendFlag"/>
      <field column="followTime" name="followTime"/>
      <field column="friendTime" name="friendTime"/>
      <field column="friendly" name="friendly"/>
      <field column="blockFlag" name="blockFlag"/>
      <field column="blockReason" name="blockReason"/>
      <field column="blockTime" name="blockTime"/>
      <field column="joinFlag" name="joinFlag"/>
          <entity dataSource="ds-3" name="account" query="select name,photoPath,l99NO,accountType,online from account where accountId = '${following1.targetAccount}'">
                  <field column="name" name="name"/>
                  <field column="photoPath" name="photoPath"/>
                  <field column="l99NO" name="l99NO"/>
                  <field column="accountType" name="accountType"/>
                  <field column="online" name="online"/>
          </entity>
   </entity>
   <entity dataSource="ds-2" name="following2" pk="logId" query="select cast(CONCAT(accountId,targetAccount) as SIGNED INTEGER) logId, accountId,targetAccount,followFlag,friendF
lag,followTime,friendTime,friendly,blockFlag,blockReason,blockTime,joinFlag from ((select * from relationship_following_2 ) union all (select * from relationship_following_4 ) u
nion all (select * from relationship_following_6 )) as f" deltaImportQuery="select cast(CONCAT(accountId,targetAccount) as SIGNED INTEGER) logId, accountId,targetAccount,followF
lag,friendFlag,followTime,friendTime,friendly,blockFlag,blockReason,blockTime,joinFlag from ((select * from relationship_following_2 where cast(CONCAT(accountId,targetAccount) a
s SIGNED INTEGER) = '${dih.delta.logId}') union all (select * from relationship_following_4 where cast(CONCAT(accountId,targetAccount) as SIGNED INTEGER) = '${dih.delta.logId}')
 union all (select * from relationship_following_6 where cast(CONCAT(accountId,targetAccount) as SIGNED INTEGER) = '${dih.delta.logId}')) as f" deltaQuery="select f.logId from (
(select cast(CONCAT(accountId,targetAccount) as SIGNED INTEGER) logId from relationship_following_2 where followTime >= '${dih.last_index_time}' or friendTime >= '${dih.last_ind
ex_time}') union all (select cast(CONCAT(accountId,targetAccount) as SIGNED INTEGER) logId from relationship_following_4 where followTime >= '${dih.last_index_time}' or friendTi
me >= '${dih.last_index_time}') union all (select cast(CONCAT(accountId,targetAccount) as SIGNED INTEGER) logId from relationship_following_6 where followTime >= '${dih.last_ind
ex_time}' or friendTime >= '${dih.last_index_time}')) as f">
      <field column="logId" name="logId"/>
      <field column="accountId" name="accountId"/>
      <field column="targetAccount" name="targetAccount"/>
      <field column="followFlag" name="followFlag"/>
      <field column="friendFlag" name="friendFlag"/>
      <field column="followTime" name="followTime"/>
      <field column="friendTime" name="friendTime"/>
      <field column="friendly" name="friendly"/>
      <field column="blockFlag" name="blockFlag"/>
      <field column="blockReason" name="blockReason"/>
      <field column="blockTime" name="blockTime"/>
      <field column="joinFlag" name="joinFlag"/>
          <entity dataSource="ds-3" name="account" query="select name,photoPath,l99NO,accountType,online from account where accountId = '${following2.targetAccount}'">
                  <field column="name" name="name"/>
                  <field column="photoPath" name="photoPath"/>
                  <field column="l99NO" name="l99NO"/>
                  <field column="accountType" name="accountType"/>
                  <field column="online" name="online"/>
          </entity>
    </entity>
   </document>
</dataConfig>


学习这个没多久,不知道有没有更好的办法来实现

作者:awj3584 发表于2013-8-26 10:28:48 原文链接
阅读:0 评论:0 查看评论

    
[3]递归和非递归实现链表反转
    来源: 互联网  发布时间: 2013-10-26

链表反转是面试笔试常考题目,直接贴代码。

反转函数如下:

//思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面
ListNode * ReverseList(ListNode *  head)
{
   //如果链表为空或者链表中只有一个元素
   if(head==NULL || head->m_pNext==NULL)
	   return head;
   ListNode * p=head->m_pNext;
   ListNode * q=head;
   while(p!=NULL)
   {
     q->m_pNext=p->m_pNext;//记录下p的下一个节点
	 p->m_pNext=head;
	 head=p;
	 p=q->m_pNext;//准备将p的下一个节点放到表头
   }
   return head;
}

//递归方式
ListNode * ReverseList2(ListNode * head)
{
	//如果链表为空或者链表中只有一个元素
	if(head==NULL || head->m_pNext==NULL)
		return head;
	else
	{
	   ListNode * newhead=ReverseList2(head->m_pNext);//先反转后面的链表
	   head->m_pNext->m_pNext=head;//再将当前节点设置为其然来后面节点的后续节点
	   head->m_pNext=NULL;
	   return newhead;
	}
}

整体测试代码如下:

// 反转链表.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include  <iostream>
using namespace std;

//定义一个链表节点
 typedef struct ListNode
{
	int       m_nKey;
	struct ListNode * m_pNext;
}ListNode;

//插入一个新节点到链表中(放在链表头部)
void CreateList(ListNode * & head,int data)
{
	//创建新节点
    ListNode * p=(ListNode*)malloc(sizeof(ListNode));
	p->m_nKey=data;
	p->m_pNext=NULL;

	if(head==NULL)
	{
		head=p;
		return;
	}
	p->m_pNext=head;
	head=p;
}

void  printList(ListNode* head)
{
   ListNode * p=head;
   while(p!=NULL)
   {
      cout<<p->m_nKey<<" ";
	  p=p->m_pNext;
   }
   cout<<endl;
}

//思路为将节点从前到后依次放到表头,最后最后的节点到了最前面,最前面的节点到了最后面
ListNode * ReverseList(ListNode *  head)
{
   //如果链表为空或者链表中只有一个元素
   if(head==NULL || head->m_pNext==NULL)
	   return head;
   ListNode * p=head->m_pNext;
   ListNode * q=head;
   while(p!=NULL)
   {
     q->m_pNext=p->m_pNext;//记录下p的下一个节点
	 p->m_pNext=head;
	 head=p;
	 p=q->m_pNext;//准备将p的下一个节点放到表头
   }
   return head;
}

//递归方式
ListNode * ReverseList2(ListNode * head)
{
	//如果链表为空或者链表中只有一个元素
	if(head==NULL || head->m_pNext==NULL)
		return head;
	else
	{
	   ListNode * newhead=ReverseList2(head->m_pNext);//先反转后面的链表
	   head->m_pNext->m_pNext=head;//再将当前节点设置为其然来后面节点的后续节点
	   head->m_pNext=NULL;
	   return newhead;
	}
}

int _tmain(int argc, _TCHAR* argv[])
{
	ListNode * Head=NULL;
    for(int i=0;i<10;i++)
      CreateList(Head,i);
    printList(Head);
    Head=ReverseList(Head);
    printList(Head);
	system("PAUSE");
	return 0;
}

运行结果如下:


作者:yunzhongguwu005 发表于2013-8-26 16:43:56 原文链接
阅读:15 评论:0 查看评论

    
最新技术文章:
▪用户及权限基础 2---- Linux权限    ▪用户及权限基础 3---- Linux扩展权限    ▪git 简明教程(1) --创建及提交
▪背包 代码    ▪json对象的封装与解析    ▪01背包,完全背包,多重背包 ,模板代码
▪apache安装详解    ▪HDU 4668 Finding string (解析字符串 + KMP)    ▪《TCP-IP详解 卷1:协议》学习笔记(二)
▪《TCP-IP详解 卷1:协议》学习笔记(持续更新...    ▪windows下使用swig    ▪gensim试用
▪Linux Shell脚本编程--nc命令使用详解    ▪solr对跨服务器表联合查询的配置    ▪递归和非递归实现链表反转
▪Linux磁盘及文件系统管理 1---- 磁盘基本概念    ▪Cholesky Decomposition    ▪HTTP协议学习
▪用C语言写CGI入门教程    ▪用hdfs存储海量的视频数据的设计思路    ▪java多线程下载的实现示例
▪【原创】eAccelerator 一个锁bug问题跟踪    ▪hadoop学习之ZooKeeper    ▪使用cuzysdk web API 实现购物导航类网站
▪二维数组中的最长递减子序列    ▪内嵌W5100的网络模块WIZ812MJ--数据手册    ▪xss 跨站脚本攻击
▪RobotFramework+Selenium2环境搭建与入门实例    ▪什么是API    ▪用PersonalRank实现基于图的推荐算法
▪Logtype    ▪关于端口号你知道多少!    ▪Linux基本操作 1-----命令行BASH的基本操作
▪CI8.7--硬币组合问题    ▪Ruby on Rails 学习(五)    ▪如何使用W5300实现ADSL连接(二)
▪不允许启动新事务,因为有其他线程正在该会...    ▪getting start with storm 翻译 第六章 part-3    ▪递归求排列和组合(无重复和有重复)
▪工具类之二:RegexpUtils    ▪Coding Interview 8.2    ▪Coding Interview 8.5
▪素因子分解 Prime factorization    ▪C# DllImport的用法    ▪图的相关算法
▪Softmax算法:逻辑回归的扩展    ▪最小生成树---Kruskal算法---挑战程序设计竞赛...    ▪J2EE struts2 登录验证
▪任意两点间的最短路径---floyd_warshall算法    ▪Sqoop实现关系型数据库到hive的数据传输    ▪FFMPEG采集摄像头数据并切片为iPhone的HTTP Stream...
▪Ubuntu 13.04 – Install Jetty 9    ▪TCP/IP笔记之多播与广播    ▪keytool+tomcat配置HTTPS双向证书认证
▪安装phantomjs    ▪Page Redirect Speed Test    ▪windows media player 中播放pls的方法
▪sre_constants.error: unbalanced parenthesis    ▪http headers    ▪Google MapReduce中文版
▪The TCP three-way handshake (connect)/four wave (closed)    ▪网站反爬虫    ▪Log4j实现对Java日志的配置全攻略
▪Bit Map解析    ▪Notepad 快捷键 大全    ▪Eclipse 快捷键技巧 + 重构
▪win7 打开防火墙端口    ▪Linux Shell脚本入门--awk命令详解    ▪Linux Shell脚本入门--Uniq命令
▪Linux(Android NDK)如何避免僵死进程    ▪http Content-Type一览表    ▪Redis实战之征服 Redis + Jedis + Spring (二)
▪Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源...    ▪利用SQOOP将ORACLE到HDFS    ▪django输出 hello world
▪python re    ▪unity3D与网页的交互    ▪内存共享基本演示
▪python join    ▪不再为无限级树结构烦恼,且看此篇    ▪python实现变参
▪打开文件数限制功能不断地制造问题    ▪Arduino Due, Maple and Teensy3.0 的 W5200性能测试    ▪Selenium实例----12306网站测试
▪基于协同过滤的推荐引擎    ▪C4.5决策树    ▪C#HTTP代理的实现之注册表实现
▪nosql和关系型数据库比较?    ▪如何快速比较这两个字符串是否相等?    ▪hdoj 1863 畅通工程 最小生成树---prime算法
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3