简单清理一下shell脚本接收参数的方式,估计只能适用sh、bash、zsh,其他shell不确定=。=
读取参数
# test.sh param1 param2
----------------
#!/bin/sh
# 第一个参数
$1
# 第n个参数(大于10的时候必须使用花括号)
${n}
简单清理一下shell脚本接收参数的方式,估计只能适用sh、bash、zsh,其他shell不确定=。=
# test.sh param1 param2
----------------
#!/bin/sh
# 第一个参数
$1
# 第n个参数(大于10的时候必须使用花括号)
${n}
SS翻墙是采用sock5协议的,而很多终端程序翻墙需要走http/https协议,所以需要配置一个将sock5转http协议的工具,例如polipo,它允许设置一个“父sock服务”并允许通过“子http端口”访问该服务。【其实就是http协议转socke5协议通讯的工具】
CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下
每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]
采用快排的partition模式处理——数字的相对顺序会变化
循环不变式:[0..i-1]都是*,[i,j-1]都是数字,[j..n-1]都是未探测。
使用缓存的时候,最常见的场景莫过于查询缓存是否存在,存在则直接获取缓存并走业务流程,不存在则读取DB层并组装数据,组装完成后写入缓存,并返回业务层。
但这种做法在高并发的时候可能会遇到缓存穿透、缓存并发和缓存雪崩的问题,以下是一点笔记(真的只是一点)。
首先生成需要使用的crontab的配置文件,
注意最后一行必须为空行!必须为空行!必须为空行!
# vi crontabfile.txt 文件名自己定即可
*/1 * * * * /new_fund.php >/dev/null 2>&1
*/5 * * * * /fund.php >/dev/null 2>&1
0 */1 * * * /default.php >/dev/null 2>&1
Alpine官方对这个问题的说明:
http://wiki.alpinelinux.org/wiki/Running_glibc_programs
docker pull szyhf/bitcoin-alpine
这几天在弄比特币核心的镜像,打算迁移一个已有服务到另一个服务器,dockerhub上已有的版本大多比较旧,而且很久没更新了,我对比特比核心的东西不熟悉,不敢随便用旧版,于是折腾了一下比特币核心的镜像,基于Ubuntu的镜像没啥好说的,很快的就搞定了,但是表示还是不太喜欢那么大的镜像(当然,我知道其实在服务器上也就存储一个根镜像),于是折腾起了Alpine版。
前文再续,就书接上一回,随着与Server、TCP、Protocol的邂逅,Swoole终于迎来了自己的故事,今天,我们来聊聊Swoole的进程模。
前边几篇东西虽然标题是Swoole,其主要讲的是操作系统、计算机网络方面的知识,包括一点点笔者自己的私货,今天终于放假了,咱可以讨论一下公的了=。=
上回我们简单介绍了一下TCP Server的工作方式以及如何用Swoole实现一个简单的TCP Server,这次我们来聊聊信息流动中,非常重要基石之一——协议(PROTOCOL)。
教师节献礼加更,祝愿我的老师们身体健康,合家美满,感谢他们没有放弃我,一直以来给我的支持与鼓励!