ssh udp proxy

 

 

相关命令:

客户端:

(如果有socat,就不用这这个while循环了)

服务端:

 

参考:

关于垃圾分类

总以为垃圾分类需要很高的国民素质,总以为垃圾分类只会出现在某些发达国家,总以为垃圾分类实现起来困难重重,总以为垃圾分类很遥远,然而,垃圾分类来了,来的那么迅雷不及掩耳,曾经总觉得自己做不到,其实只是没信心,只要你下决心去做了,办法总比问题多,相信不久的将来,我将不需要去日本,也能看到干净的街道了。

关于bash的输入输出重定向

先写一个语义不太清晰的写法:

通常来讲,1是标准输出,如果我们要重定向标准输出到文件 /tmp/file , 则写法如下:

这里没有写文件描述符,默认为输出重定向说的就是文件描述符1,即:

那么,你可能会说:

也有这个效果,那么这个有如何解释呢?

该命令逻辑上等效于: (实际上不是)

前面是说的输入重定向,后面说的是输出重定向;

但是,通常我们不会去读标准输出的,虽然0/1/2 和其它文件描述符都是一样的。

下面看一个实际测试:

因为每个文件描述符只有一个位置指针,读写操作的指针不是分开的,所以,这里我们是从文件尾部开始read的,所以啥也read不到,能否跳转到文件头read呢?

这里有很多有意思的思路: https://stackoverflow.com/questions/3838322/bash-read-write-file-descriptors-seek-to-start-of-file

  1. python可以直接打开fd,也能seek,c也能,但是借助外部程序的话,势必要把整个进程空间替换成外部程序,这样就回不来了
  2. 有时候,我们大可不必非要使用 &的方式访问文件描述符,直接使用 /proc/self/fd/8 可能更加方便,如:
    1. 当然,这样总是读第一行

 

为什么下面写法是不对的?

  1. 一个文件描述符不可能同时指向两个不同的文件,相同的文件打开两次也是要覆盖的;所以这里读打开是覆盖了写打开的,所以,最终是写不了的
  2. 所以,如果要读写同一个文件,最好使用不同的文件描述符分别打开文件

 

bash 解析db2look 导出的sql文件中的create table语句

通过bash解析db2look 导出的sql文件中的create table语句,并写入对应的独立的文件。

脚本如下:

其实,grep也能提取,只是不方便分文件写入,而且,不方便去掉不想要的IN子句,grep的写法:

bash 清理文件空行以及行首行位空行

一般来讲,这个事儿是sed该干的,但是,sed做起来也不那么简单,可能每次写都需要问百度。

bash如何实现呢?

这里涉及了三种情况:

  1. 空行(空字符)
  2. 行首空字符
  3. 行尾空字符
  4. 空字符可能是空格有可能是tab,一般也就这两种情况了

写起来是不是比较麻烦?

脚本:

简直不敢相信,远比sed要简单的多吧。

因为read自然帮我们去的掉了行首行尾的空白了。

不过需要注意的是:

  1. 这里echo的$line 是加了双引号的,如果没有双引号,echo 就会帮我们把line中间的空格或tab给吃掉,连续的空白只剩余一个空格;加入我们想要的就是这种效果的话,你们直接去掉双引号就行了,省却考虑相关处理逻辑了
  2. 如果文件中含有类似 “a\+b\c” 这种包含了\ 的字符串,处理完之后, \ 就没了; 所以,上面的处理方式有局限性
  3. 如果文件是二进制文件,也不能这样处理

 

关于echo “$line” 中双引号的作用:

假如 line=”1 2    3″

echo $line   等效于  echo 1 2   3  ;根据我们基本的认知,2和3中间有多少个空格都等于1个空格,对于echo来讲都是3个参数

echo “$line” 等效于 echo “1 2   3” ; 这里的echo接收到的是1个参数,自然不能随意丢掉其中的空格

db2 命令行查看表结构

db2 中没有类似mysql中的show create table 的命令,只是db2look 可以导出表结构,如果要查看建表语句也不太方便,尤其想把每个表的建表语句都放在单独的文件,下面的命令可以从db2look到处的sql文件中提取表结构:

 

不过这样的话,也是先db2look得到文件后,先将表名提取出来,再提取表结构,步骤稍许麻烦。

db2look 用法:

本周工作内容

周一

  • 启用蜜蜂到北研的专线
  • 整理现有开发测试环境

周二

  • 整理现有开发测试环境
  • win10上正确安装db2
  • 熟悉禅道
  • 了解哈行项目相关文档及系统状况

周三

  • 关于测试环境的实施方案

周四

  • 汇总、统计、熟悉涉及的系统,以及系统之间的关系,确定系统对应的svn地址,为搭建测试环境做准备
  • 看到全流程的源码后才发现全流程根本不可怕
  • 消金运维的事情终结了

周五

  • 关于测试环境总得有个结果的
  • 可以从esb入手了解系统之间的调用关系
  • 为没有测试环境的系统申请测试环境
  • 今天了解相关系统,发现一个秘密,全流程使用小机不是因为x86不支持,只是因为系统不支持分布式部署
  • 下周赶紧申请测试验证环境

关于virtualbox中vboxsf挂载的共享目录中不能创建软连接的问题

参考:

https://superuser.com/questions/446362/why-cant-i-create-soft-link-on-vboxsf-file-system

处于安全考虑,virtualbox 4.1.8之后, 不允许在共享目录中创建软连接,尽管不是只读挂载,创建软连接也会提示readonly;

原本的符号链接会访问错误的,如: Protocol error

快捷的做法是:我们可以直接copy原始文件,而不是使用软连接

但是可以通过如下命令修改:

 

实测:

VBoxManage setextradata docker VBoxInternal2/SharedFoldersEnableSymlinksCreate/workspace 1

 

还有一个问题: vboxsf挂载的文件系统的mode是固定的,通过chmod修改不了,如果有些文件就是期望某种mode的话,就是不好搞的,所以这个文件系统时不时会给我们带来麻烦