Author: jpuyy

  • 现在的我失去了很多想法

    以前遇到问题总是能想到解决办法

    为什么现在会认为很多事情是很难办到的呢?
    总是皱眉头,还表现的很苦逼

    对于困难也会像 人们面对灾难或者死亡的情况

    denial anger bargaining depression acceptance

    不能放弃,想办法知道自己想做什么.

  • ssh端口转发

    很多时候服务器集群是有跳板机,远程进行任何操作的时候都是先登陆跳板机,再登陆内网的机器。

    我们把本机叫做local,跳板机叫做tiaoban,真正要连接的集群内的服务器叫做node1。如何快速从local登陆到node1? 操作如下:

    方法一:

    1. 在 tiaoban 上输入如下命令

     ssh -CfNg -L 3333:node1:22 root@node1

    -L表示local,即在跳板机上开设一个3333的端口,保证有ssh连接到3333时,转发到node1的22端口。

    然后在local去连跳板机的3333端口

    ssh -p 3333 root@tiaoban

    注意,上面我都用的是root。实际是node1的用户是什么就写什么,这样就可以直接登陆到机器node1了。

    这种方法会在跳板机上打开3333端口,暴露了端口。

    方法二:通过proxycommand 和 netcat

    这种方法不需要对tiaoban和node1进行任何操作,只需在local机器的ssh_config(或是~/.ssh/config)添加如下配置

    Host node1
    HostName node1
    Port 22
    ProxyCommand ssh -p 3333 root@tiaoban ; nc %h %p

    然后在local输入

    ssh root@node1

    这样可直接转发,nc的作用是做一个tunnel,在跳板机上不会暴露端口。

    应用:在本地启一个 socks5 代理

    ssh -D 1081 jpuyy@yyhome -p 22

    在外面连接家里的路由器界面

    ssh -L 8989:192.168.1.1:80 [email protected]
    # 浏览器打开 127.0.0.1:8989 即可管理路由器
    
  • vim编辑多个文件(3种方法)

    方法一:直接打开多个文件

    vim file1 file2 file3

    现在默认打开的是file1,切换到下一个

    :n 或 :bn

    切换到上一个

    :prev 或 :bp

    查看完整的编辑列表及当前编辑的文件名

    :args 或 :buffers 或 :ls

    方法二:使用标签来打开不同的文件http://jpuyy.com/2013/11/vim-tabs.html

    方法三:使用窗口打开不同的文件

    Ctrl-W s 和 Ctrl-W v 可将当前编辑的文件水平或垂直显示。使用 :split and :vertical 同理 (:sp and :vs)

    Ctrl-W w 在不同的window依次切换, 或 Ctrl-W h (or j or k or l) 来根据方向切换

    Ctrl-W T 将当前 window 放到新 tab 里

    Ctrl-W _ 将当前窗口调整为最大高度

    Ctrl-W | 将当前窗口调整为最大宽度

    Ctrl-W = 将当前窗口与其他窗口均分高度宽度

    Ctrl-W R 将左右,上下 window 互换

    Ctrl-W c 会关闭当前的窗口, Ctrl-W o 会关闭其他所有窗口.

    使用vim -o(横割) 或 -O(竖割)会在不同窗口打开这些文件

  • sublime使用中文输入法ibus

    在ubuntu下使用sublime,直接使用不能输入中文

    这需要插件才能实现,实际使用上实现了功能,如果英文好平时还是少打点汉字吧

    安装方法

    cd ~/.config/sublime-text-2/Packages
    git clone https://github.com/xgenvn/InputHelper.git

    接下来打开sublime,在输入界面按下 Ctrl + Shift + Z , 会弹出一个小框,切换到ibus中文输入之后回车,已经输入的字会出现在sublime光标的后面。

  • mysql replace命令

    将某字符串中的xz替换为yz

    select replace('xxxxxzccss','xz','yz');

    把Object表,字段asset_no中的XZZC替换为GDZC

    update `Object` set `asset_no`=REPLACE(`asset_no`,'XZZC','GDZC');

     

  • mysql binlog参数设定

    mysql使用binlog的好处就是很灵活的进行数据恢复

    binlog设定不对会使磁盘用满报错,出现这种情况首先将数据库里的binlog清理

    根据binlog名进行之前的删除

    PURGE {MASTER | BINARY} LOGS TO 'log_name';

    例:删除mysql-bin.000123之前的binlog

    PURGE MASTER LOGS TO 'mysql-bin.000123';

    根据binlog保留的时间进行删除

    PURGE {MASTER | BINARY} LOGS BEFORE 'date';

    例删除2014-02-19 22:46:26之前的binlog

    PURGE MASTER LOGS BEFORE '2014-02-19 22:46:26';

    删除7天前的binlog

    PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 7 DAY);

    故障处理完了,现在要对mysql的binlog保留时间进行调整

    可在my.cnf中设定参数,重启mysql

    expire_logs_days = 7

    不能重启mysql,则需要在mysql命令行中设置,需要flush logs,否则参数不生效过些天又会用满

    mysql> set global expire_logs_days = 7;
    mysql> flush logs;