Linux下逐行比较两个文本文件

Linux很多情况下需要逐行比较两个文本文件,并显示出两个文件中所有不同的行。推荐使用diff和vimdiff(需要安装vim)
很多情况下需要逐行比较两个文本文件,并显示出两个文件中所有不同的行。推荐使用diff和vimdiff(需要安装vim)

vimdiff zhuzhan20170830 zhuzhan20170831
:qa! #退出

cat diffzhuzhan20170831
--- /root/checkdir/zhuzhan20170830 2017-08-30 07:05:03.250349499 +0800
+++ /root/checkdir/zhuzhan20170831 2017-08-31 07:05:02.523044481 +0800
@@ -93,10 +93,12 @@
367b63c971d06817126273caaf7520ff /baidu_push.php
47396f597f8b06e103c7d53014febc80 /vote/index.php
c509a365abe6ced5adb8d09ba59e993d /ViewClick/zt.php
+5d36bb18cf3d737672e856aa67281a2e /ViewClick/zhibojump.php
082a0ee07a3467779091d1d71980965f /ViewClick/ViewMore.php
-3dc18566881ef1420a6f8988cd1eefda /ViewClick/jump.php
-097555dcc2718ece2fac34070a14b1c2 /ViewClick/index.php
-ad168ec79acf8bf3861a099b08a7c0c8 /ViewClick/dell.php
+3dbe6a57c87f1d3d0fe6eef4bd1472bb /ViewClick/jump.php
+3d88ddf568f0279767cf671b10f63484 /ViewClick/index.php
+aa5ce6769a9a8e8e73a4c13aad24753f /ViewClick/dell.php
+40cd750bba9870f18aada2478b24840a /ViewClick/cacheZhiboJump.php
32c01ba72925465a3a437f41ffb9e4ee /uvonclick/index.php
477344028faf48e0cb70088a5cb4c266 /PPHD/index.php
f82b7e6311a0cff4af01092fd07a541f /onclick/index.php
--- /root/checkdir/zhuzhan20170830 2017-08-30 07:05:03.250349499 +0800
+++ /root/checkdir/zhuzhan20170831 2017-08-31 07:05:02.523044481 +0800
@@ -93,10 +93,12 @@

字母"a"、"d"、"c"分别表示添加、删除及修改操作
+ 比较的文件的后者比前着多一行
- 比较的文件的后者比前着少一行

显示结果分成三部分,
第一部分是文件的基本信息,“---”表示变动前的文件,“+++”表示变动后的文件。
第二部分,变动的位置用两个@作为起首和结束。@@ -93,10 +93,12 @@,前面的“-93,10”分成三个部分:减号表示第一个文件(即f1),“93”表示第93行,“10”表示连续10行,
合在一起,就表示下面是第一个文件从第93行开始的连续10行。同样的,“+93,12”表示变动后,成为第二个文件从第93行开始的连续12行。
第三部分是变动的具体内容,它将两个文件的上下文,合并显示在一起,每一行最前面的标志位,空表示无变动,减号表示第一个文件删除的行,加号表示第二个文件新增的行。

diff的输出可以做为补丁。
制作补丁:
  diff -urN linux-3.4.2 linux-3.4.2-my > linux-3.4.2-my.patch
打补丁:
  patch -p1 < ../linux-3.4.2-my.patch

CentOS7通过反向SSH隧道(Reverse SSH Tunneling) 实现内网穿透

CentOS7通过反向SSH隧道(Reverse SSH Tunneling) 实现内网穿透

1、By default, SSH daemon is only listening on 127.0.0.1, so we won’t be able to access to our forwarded ports from outside. To get it listen on the interface connected to Internet we must enable GatewayPorts option in SSH server's configuration.
默认情况下,SSH守护程序只侦听127.0.0.1,所以我们将无法从外部访问我们转发的端口。 要让它在连接到Internet的接口上侦听,我们必须在SSH服务器的配置中启用GatewayPorts选项。

vim /etc/ssh/sshd_config
然后GatewayPorts yes在文件的底部添加。

2、为防止SSH登录自动超时,修改下面参数每60秒会发一个KeepAlive请求
vim /etc/ssh/sshd_config
ServerAliveInterval 60

3、ssh -fNR 公网服务器需要监听的端口:localhost:内网需要监听的端口 用户@公网服务器
-N:不执行何指令
-f:后台执行
-R:建立reverse tunnel

在内网服务器上执行,那么就可以通过公网服务器的1688端口来连接处于多层内网的服务器了
ssh -fNR 1688:localhost:22 root@122.114.224.224 -p 12345

公网服务器执行netstat -tulpn
tcp 0 0 0.0.0.0:1688 0.0.0.0:* LISTEN 2442/sshd

4、也可以用 autossh 来创建一个连接到公网服务器的永久 SSH 隧道。

5、Windows 通过隧道实现内网穿透
plink -R [Port to forward to on your VPS]:localhost:[Port to forward on your local machine] [VPS IP]
http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

6、这里是用CentOS7,当然也可以使用Ubuntu、Debian、Fedora等等

CentOS6和CentOS7 一键更换内核,一键安装锐速[lotServer]

CentOS6和CentOS7 一键更换内核,一键安装锐速[lotServer][serverSpeeder ]

CentOS6和CentOS7 一键更换内核,完成后会重启
wget --no-check-certificate https://www.zhangfangzhou.cn/sh/ruisu.sh
bash ruisu.sh


手动更换内核
CentOS6更换内核
rpm -ivh http://file.asuhu.com/kernel/kernel-firmware-2.6.32-504.3.3.el6.noarch.rpm
rpm -ivh http://file.asuhu.com/kernel/kernel-2.6.32-504.3.3.el6.x86_64.rpm --force

查看内核版本
cat /boot/grub/grub.conf | awk '$1=="title" {print i++ " : " $NF}'
0 : (2.6.32-504.3.3.el6.x86_64)
1 : (2.6.32-642.13.1.el6.x86_64)

确认内核版本
cat /boot/grub/grub.conf | awk '$1=="title" {print i++ " : " $NF}'|grep '2.6.32-504'|awk '{print $1}'

设置启动的内核
vi /boot/grub/grub.conf
default=0

重启
reboot

确认内核版本
uname -r
2.6.32-504.3.3.el6.x86_64


CentOS7更换内核
rpm -ivh http://file.asuhu.com/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force

查看内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux 7 Rescue 1f0eb10f866e4eeea5ec2c016d383869 (3.10.0-229.1.2.el7.x86_64)
1 : CentOS Linux (3.10.0-229.1.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-98f15324ee1542fdaf9b60c933ff0e2c) 7 (Core)

设置启动的内核
grub2-set-default `awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg | grep '(3.10.0-229.1.2.el7.x86_64) 7 (Core)'|awk '{print $1}'`
grub2-editenv list #查看确认
reboot 重启


CentOS6和7 更换内核完成一键安装锐速[lotServer]

wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh install

安装完成后检测是否启用
lsmod |grep appex

卸载
wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh uninstall

使用此脚本安装时如遇许可证错误,可尝试使用此命令更新许可证
bash /appex/bin/serverSpeeder.sh renewLic


VPS推荐
搬瓦工/bandwagonhost – $18/年 KVM 1核 512M 10G 500G 1Gbps 六机房
https://blog.asuhu.com/bandwagonhost.aspx

CentOS 6.x使用dropbox并定时同步数据

CentOS 6.x使用dropbox并定时同步数据
Dropbox成立于2007年,提供免费和收费服务,在不同操作系统下有客户端软件,并且有网页客户端,能够将存储在本地的文件自动同步到云端服务器保存。

  • 1、安装Dropbox
  • 2、获取帮助
  • 3、解绑Dropbox
  • 4、开机启动
  • 5、备份数据
  • https://www.dropbox.com/install?os=lnx
    1、安装Dropbox
    32-bit
    wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
    64-bit
    wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
    从新建的 .dropbox-dist 文件夹运行 Dropbox 守护程序。
    ~/.dropbox-dist/dropboxd
    会出现一个链接,需要登录网页确认来关联此设备
    请访问 https://www.dropbox.com/cli_link_nonce?nonce=00873e432b668e9c6637642850a7edce 来关联此设备。

    使用官方Python 脚本通过命令行控制 Dropbox
    mkdir -p ~/bin
    wget -O ~/bin/dropbox.py "https://www.dropbox.com/download?dl=packages/dropbox.py"
    chmod +x ~/bin/dropbox.py

    2、获取帮助
    ~/bin/dropbox.py help

    which will show you all the commands you can use

    status 获取 dropboxd 的运行状态
    help 提供帮助
    puburl 获取一个文件的共享链接
    stop 停止 dropboxd
    running 返回 dropboxd 是否在运行
    start 运行 dropboxd
    filestatus 获取一个或多个文件的同步状态
    ls 显示文件(夹)的同步状态
    autostart 用户登录时自动启动 dropboxd
    exclude 同步时排除文件夹
    lansync 启用禁用局域网同步

    ~/bin/dropbox.py status
    ~/bin/dropbox.py statrt
    ~/bin/dropbox.py exclude list
    ~/bin/dropbox.py exclude add ~/Dropbox/blogkms

    3、解绑Dropbox
    如果你的主机换了,原来的Dropbox确定不用,解绑你的账户和bropbox的关联
    在官网登录你的账户
    在右上角点击你的名字
    在下拉菜单中找到设置(setting)
    选择安全(security)选项卡
    在网页下面找到设备(devices)
    点击对应设备后面的X解绑

    删除linux主机上的一切有关文件(注意备份)
    rm -rf ~/.dropbox Dropbox .dropbox-dist

    4、开机启动
    vi /etc/rc.local
    su - xxx -c "~/bin/dropbox.py start" #su - root -c "~/bin/dropbox.py start"
    # xxx为你的用户名

    每天的00:05和12:05运行,然后在15min后停止运行。
    # dropbox
    5 00,12 * * * sh ~/dropbox.sh start
    20 00,12 * * * sh ~/dropbox.sh stop

    5、备份数据
    vi backup.sh

    #!/bin/sh
    #需要事先创建好/root/Dropbox/blogkms备份文件夹
    bpDIR="/root/Dropbox/blogkms"
    scDIR="/data/wwwroot"
    cfDIR="/usr/local/nginx/conf"
    rm -rf "$bpDIR/web.$(date -d -10day +%Y.%m.%d.)*.tar.gz"
    rm -rf "$bpDIR/conf.$(date -d -10day +%Y.%m.%d.)*.tar.gz"
    rm -rf "$bpDIR/sql.$(date -d -10day +%Y.%m.%d.)*.sql"
    #删除10天前备份的数据

    tar zcvf "$bpDIR/conf.$(date +%Y.%m.%d.%H.%M.%S).tar.gz" "$cfDIR"
    #备份nginx配置文件

    tar zcvf "$bpDIR/web.$(date +%Y.%m.%d.%H.%M.%S).tar.gz" --exclude=SuHu "$scDIR"
    #备份网站文件

    /usr/local/mysql/bin/mysqldump -ublog -pGUIOygC7xivA --databases blog > "$bpDIR/sql.$(date +%Y.%m.%d.%H.%M.%S).sql"
    #备份数据库文件

    GPU-Z 0.8.3

    GPU-Z是一个轻量级的显卡测试软件,便携易用,界面直观,打开即可显示GPU核心、以及运行频率、带宽等数据。同CPU-Z一样,是硬件检测必备工具。
    新版本主要增加了对即将发布的NVIDIA、AMD两款高端显卡的支持。

    GPU-Z v0.8.3

    GPU-Z 0.8.3

    CPU-Z

    CPU-Z是检测CPU使用程度最高的一款软件。它支持的CPU种类相当全面,软件的启动速度及检测速度都很快。另外,它还能检测主板和内存的相关信息,其中就有我们常用的内存双通道检测功能。
    使用CPU-Z可以查看CPU名称、厂商、内核进程、内部和外部时钟、局部时钟监测等参数。选购之前或者购买CPU后,如果我们要准确地判断其超频性能,就可以通过它来测量CPU实际设计的FSB频率和倍频。

    CPU-Z 1.74

    中文版:EXE||ZIP (包含32和64位版)
    英文版:EXE||ZIP (包含32和64位版)
    CPU-Z (1)

    CPU-Z (2)
    20151210

    在CMD中查询Whois

    在CMD中查询Whois
    介绍:http://technet.microsoft.com/en-us/Sysinternals/bb897435.aspx
    下载1:http://download.sysinternals.com/files/WhoIs.zip
    下载2:http://download.sysinternals.com/files/SysinternalsSuite.zip
    
    1:下载解压后,将解压出来的whois.exe放置到 C:/Windows/system32/ 目录下。
    2:打开CMD命令行,输入:whois xxx.com 即可查询。
    3:也可以放置到其他目录下,使用的时候在CMD命令行下进入该目录。
    4:输入:whois xxx.com 即可查询。
    

    whois

    Linux安装中文的man包

    Linux安装中文的man包
    
    #wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz
    #tar zxvf manpages-zh-1.5.1.tar.gz     
    #cd manpages-zh-1.5.1
    #./configure --prefix=/usr/local/zhman --disable-zhtw             
    #make
    #make install
    #cd ~  (回到当前用户主目录)
    #vi .bashrc (在.bashrc中增加:alias cman='man -M /usr/local/zhman/share/man/zh_CN',保存)         
    #source .bashrc          (使刚刚添加的alias生效)
    (系统默认语言与编码要修改为LANG="zh_CN.UTF-8,不然cman会显示乱码)
    修改系统默认语言与编码(中文)
    #vi /etc/sysconfig/i18n
      1 LANG="en_US.UTF-8"
      2 SYSFONT="latarcyrheb-sun16"
    将LANG="en_US.UTF-8" 修改成 LANG="zh_CN.UTF-8"
    ESC退出编辑,:wq或输入两次大写字母ZZ,保存并退出vi。
    
    #reboot
    (可以用自带的man,还可以用安装的中文cman)
    #cman shutdown
    #man shutdown
    ctrl+b  (向上翻屏)
    ctrl+f  (向下翻屏)
    #q  (退出手册)
    

    cman man