brew换源
替换
1 | 替换brew.git: |
重置
1 | 重置brew.git: |
ss+curl方式
export ALL_PROXY=socks5://127.0.0.1:1086
1 | 替换brew.git: |
1 | 重置brew.git: |
export ALL_PROXY=socks5://127.0.0.1:1086
1 | #!/bin/bash |
1 | #!/bin/bash |
1 | #!/bin/bash |
1 | groupadd oinstall |
下载并解压到/home/oracle/database
1 | /etc/hosts |
1 | vi /etc/selinux/config |
1 | systemctl stop firewalld |
1 | vi /etc/sysctl.conf |
1 | oracle soft nproc 2047 |
1 | session required /lib64/security/pam_limits.so |
1 | if [ $USER = "oracle" ]; then |
1 | mkdir -p /app/oracle/product/11.2.0 |
1 | yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel |
1 | su - oracle |
1 | vi /home/oracle/database/response/db_install.rsp |
1 | ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /home/oracle/database/response/db_install.rsp |
切回root
1 | sh /app/oracle/inventory/orainstRoot.sh |
su - oracle
netca -silent -responseFile /home/oracle/database/response/netca.rsp
1 | vi /home/oracle/database/response/dbca.rsp |
1 | dbca -silent -responseFile /home/oracle/database/response/dbca.rsp |
lsnrctl status
sqlplus / as sysdba
vi /etc/init.d/dbora
1 | #! /bin/sh -x |
1 | chmod 750 /etc/init.d/dbora |
vi /etc/oratab
1 | orcl:/app/oracle/product/11.2.0:Y |
N改为Y
1 | service dbora start |
nc(netcat)是一个能通过TCP和UDP读写数据的工具,很多Linux发行版已经预装。最近发现了关于nc的很多有趣的应用场景,果然名副其实,很是牛叉。。。于是简单梳理了一下。
使用nc -z可以测试远程主机端口的连通性。
以前我们测试某台远程主机的某个端口是否能连通,通常都是用telnet ip port,现在可以用nc来替代了。
示例:
1 | nc -z 192.168.1.60 19011 |
使用-z参数时,还可以指定一个端口范围进行扫描。
以后简单场景下,就不需要动用nmap这种专业工具了。
示例:
1 | TCP: |
很多时候,如果拜托网管为我们做一个NAT映射,或新配置了一个防火墙策略后,通常要启一个临时的tomcat/apache/nginx行测试,非常麻烦。
如果只是临时测试的话,直接使用nc -l 端口号就可以启一个监听了,如果早点知道的话就可以省去很多时间了。
示例:
1 | nc -l 33333 |
nc配合echo来使用,可以模拟发送一段HTTP请求报文,对一个HTTP服务进行健康度检测。
如果服务支持HEAD方法的话,可以尽量使用HEAD以减轻测试时对服务端的压力。
于是简单场景下,我们又可以抛弃wget和curl了。。。
示例:
1 | echo -e "GET /mobsale-service/health HTTP/1.0\r\n\r\n" |nc -t 192.168.1.60 19011 |
通常,我们在两台服务器之前传递文件,首选都是sftp/scp,或者ftp,或者更古老的sz/rz。
但如果这些方式都被禁用的话怎么办呢?可以用nc来自己铺路,只要能连网,就能传文件!
示例:
1 | 传递方: |
如果要传递目录的话,需要配合tar/zip等工具进行打包。
还可以使用nc来进行单方向聊天,这貌似是一个然并卵的东西。。。
和文件传输的原理其实是一样的。
示例:
1 | 接收方: |
发送发输入内容回车之后,接收方就会显示了
不借助tomcat/nginx/httpd等WEB容器,仅用nc就可以用快速搭建一个单页面的WEB服务器。
首先新建一个index.html文件:
1 | <!doctype html> |
执行以下脚本,将一个简单的HEAD与index.html中的BODY拼接并输出:
1 | while true;do { printf '%b\r\n' 'HTTP/1.1 200 OK' '%b\r\n';cat index.html; }|nc -l 33333;done |
在浏览器上输入http://192.0.2.1:8080/whatever 就可以看到刚才的页面了
设想如下场景:
如果某台远程主机禁用了某用户(例如root)的SSH远程登录权限,只能通过低权限的管理用户登录,再用su -的方式切换过去进行操作。如果觉得不爽,有没有可能绕过这个限制呢?
使用nc就可以在远程新开一个任意监听端口,然后在本地就可以模拟SSH登录了,可以说是命令行版的”远程桌面”吧。
原理如下:
1 | 远程: |
与上面的”模拟SSH登录”原理类似,nc的另一个场景是可以充当一个4层的反向代理,这个比较实用了,LVS/HA/Nginx统统都可以下岗了。。。
示例:
1 | mkfifo backpipe; nc -l 33333 0<backpipe | nc 192.168.1.60 19011 1>backpipe |
大体先写这么多了,以后的使用过程中如果还有新的发现,随时补充。
spring-boot默认是使用slf4j+logback做日志输出的, 本文主要演示如何切换为slf4j+log4j。
正常情况下,建议直接使用logback。
在某SpringBoot项目中,因为要使用ELK做日志采集,局方要求使用log4j并给出了一组日志格式规范:
1 | %d{yyyy-MM-dd HH:mm:ss} [%-5p](%-30c{1}) [TxId : %X{PtxId} , SpanId : %X{PspanId}] [ET:%X{ENV_TYPE},AN:%X{APP_NAME},SN:%X{SERVICE_NAME},CN:%X{CONTAINER_NAME},CI:%X{CONTAINER_IP}] %m%n |
所以只能有两种方案可供选择:
由于面对日志格式中的一大堆%比较头大,于是选择了不怎么优雅的方案2,切换为log4j。
首先要显式的引入spring-boot-starter,并将其中的spring-boot-starter-logging排除掉
然后新增一个spring-boot-starter-log4j的依赖
1 | <dependency> |
新建src/resource/log4j.properties,按正常方式配置即可
下面是一个双日志输出的样例:
1 | log4j.rootCategory=info,file_info,file_error,stdout |
raspi-config
sudo passwd root
ls -lsa /bin/ping
sudo chmod 4711 /bin/ping
vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask 255.255.248.0
gateway xxx.xxx.xxx.xxx
dns-nameservers xxx.xxx.xxx.xxx
sudo ifup eth0
sudo /etc/init.d/networking restart
sudo vi /etc/environment
export http_proxy=”http://134.32.87.142:1080“
export http_proxy=”http://134.32.32.13:31315“
export http_proxy=”http://134.32.32.13:31081“
sudo vi /etc/apt/apt.conf.d/10proxy
Acquire::http::Proxy “http://134.32.87.142:8080/“;
Acquire::http::Proxy “http://134.32.32.13:31315/“;
sudo vi /etc/apt/sources.list
deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
开启IPV4转发:
sudo vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf
源码编译Redsocks:
sudo apt install libevent-dev
make
redsocks配置文件:
sudo vi /etc/redsocks.conf
1 | base { |
iptables配置:
1 | iptables -F |
sudo apt install dnsmasq
apt-get install python-pip
pip install shadowsocks
sudo vi /etc/nginx/sites-available/default
listen 30080;
sudo raspi-config
ntpd -q -g
sudo date -s “2016-11-8 14:20:00”