邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

Mac下Operation not permitted问题

之前把php-fpm命令复制到/usr/sbin目录中,现在想删除却提示
Operation not permitted
原来苹果系统在某版本后加入了Rootless机制,很多系统目录不再能够随心所欲的读写了,即使设置 root 权限也不行。

以下路径无法写和执行
/System
/bin
/sbin
/usr (except /usr/local)

关闭
重启按住 Command+R,进入恢复模式,打开终端
csrutil disable
reboot 

开启
重启按住 Command+R,进入恢复模式,打开终端
csrutil enable
reboot 

thinkphp的nginx重写兼容配置
 if (!-e $request_filename) {
 rewrite ^/index.php(.*)$ /index.php?s=$1 last;
 rewrite ^(.*)$ /index.php?s=$1 last;
 break;
 }
mac下ssh登录记录账号

vim ~/.ssh/config
Host action1  # 别名
HostName 123.57.204.35  # 主机名
Port 22 # 端口
User root # 用户名
#IdentityFile ~/.ssh/id_rsa  # 密钥文件的路径  
Host action2
HostName 59.110.218.33
Port 22
User root


要是想要免密登录,可以参考
http://xingdong365.com/network/280.html


linux下自制证书
cd /etc/pki/tls/certs
make action.key //期间会让你输入密码

mv action.key action.key.raw
openssl rsa -in action.key.raw -out action.key   //期间会让你输入刚刚的密码,此步骤是将刚建立的文件的密码取消掉

rm -f action.key.raw
chmod 400 action.key  //权限400

make action.crt SERIAL=20170820  //建立所需要的最终证书文件,期间会让你输入证书的信息
ll action* //查看

笔记来源:linux鸟哥的私房菜 服务器架设篇 -www服务器


linux下logrotate配置参数说明
参数 功能
monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
compress 通过gzip 压缩转储以后的日志
nocompress 不需要压缩时,用这个参数
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate 备份日志文件但是不截断
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
nocreate 不建立新的日志文件
delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
errors address 专储时的错误信息发送到指定的Email 地址
ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty 如果是空文件的话,轮循不会进行。
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ 
size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).

vim /etc/logrotate.d/nginx
/data/wwwlogs/*nginx.log {
  daily
  rotate 5
  missingok
  dateext
  compress
  notifempty
  sharedscripts
  postrotate
    [ -e /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
  endscript
}
DNS(Domain Name System)服务器相关的几个命令

DNS(Domain Name System)服务器相关的几个命令

host 
example:
host www.baonisheng.cn
host -a www.baonisheng.cn
nslookup
example:
nslookup www.baonisheng.cn
dig
example:
dig www.baonisheng.cn
dig -x 123.57.204.35 //查询反解信息
whois
example:
whois baonisheng.cn //查询域名注册信息
应用层拒绝服务攻击
SYN flood
正常情况下
(1)客户端向服务端发送一个SYN包,包含客户端使用的端口号和初始序列号x。
(2)服务器在收到客户端的SYN包后,将返回一个SYN+ACK的TCP报文,包含确认号x+1和服务器的初始序列号y。
(3)客户端收到服务器返回的SYN+ACK报文后,向服务器返回一个确认号为y+1,序号为x+1的ACK报文,一个标准的TCP连接完成。
SYN flood在攻击时,首先伪造大量的源ip地址,分别向服务器发送大量的SYN包, 此时服务器会返回SYN+ACK包,因为源地址是伪造的,所以伪造的ip并不会应答,服务器端没有收到伪造ip的回应,会重试3~5次并且等待一个SYN Time(一般为30秒至2分钟),如果超时则丢弃这个连接。攻击者大量发送这种伪造源地址的SYN请求,服务器将会消耗非常多的资源来处理这种半连接,同时还要不断地对这些IP进行SYN+ACK重试。最后的结果是服务器无暇理睬正常的连接请求,导致拒绝服务。

UDP flood

ICMP flood
初识dockerNote

基础命令
1.docker pull [OPTIONS] NAME[:TAG]  
docker pull hello-world
2.docker images [OPTIONS] [REPOSITORY[:TAG]]
3.docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG.....]

Docker运行Nginx

实践前奏
持久运行的容器
前台挂起&后台运行
进入容器内部

进入https://c.163.com/hub#/m/home/ 搜索 nginx

打开带小鲸鱼标志的镜像
执行
docker pull hub.c.163.com/library/nginx:latest
查看 
docker images
运行
docker run -d hub.c.163.com/library/nginx  //-d 后台运行,执行返回容器的id
查看运行情况
docker ps  

进入nginx服务
docker exec -it 2913c bash   //2913c是我的容器 id 的前几位
exit退出

停止
docker stop 容器id


Docker网络
网络类型
Bridge(网桥形式)   
Host(连主机的网卡) 
None
端口映射
docker run -d -p 8080:80 hub.c.163.com/library/nginx   //小p,指定映射端口,访问地址为 localhost:8080
docker run -d -P hub.c.163.com/library/nginx  //大P,随机端口


制作自己的镜像
Dockerfile
docker build 
    Jpress: http://jpress.io/

第一个java web应用
wget https://github.com/JpressProjects/jpress/raw/master/wars/jpress-web-newest.war
mv jpress-web-newest.war jpress.war
docker pull hub.c.163.com/library/tomcat:latest
=======
vim Dockerfile
from hub.c.163.com/library/tomcat:latest
MAINTAINER Action xingdong1117@126.com
COPY jpress.war /usr/local/tomcat/webapps
========

 docker build -t jpress:latest 

docker run -d -p 8888:8080 jpress


杀死所有正在运行的容器
docker kill $(docker ps -a -q)
删除所有已经停止的容器
docker rm $(docker ps -a -q)
删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
删除所有镜像
docker rmi $(docker images -q)


优惠券
广告位-淘宝
最新微语