Hugh's Blog

DD 重装系统

使用萌咖脚本:https://moeclub.org/2018/04/03/603 默认用户:root,默认密码:MoeClub.org # redhat, centos yum install -y xz openssl gawk file # debian, ubuntu apt-get install -y xz-utils openssl ga...

Linux 安装 PHP

Linux 选择安装特定 PHP 版本,做个记录。 CentOS 安装 PHP 安装源: # centos 7 yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum install http://rpms.remirepo.net/e...

clickhouse-copier 使用

clickhouse-copier 是官方的数据迁移工具,主要用在多个集群之间的数据迁移,当然单个集群也适用。 本地使用 Docker 搭建测试集群:clickhouse-cluster-example。 集群信息 ┌─cluster────┬─shard_num─┬─replica_num─┬─host_name───┐ │ ck_cluster │...

ClickHouse 笔记

ClickHouse 是一款开源的 OLAP 列存储数据库,下面是一些使用笔记,做个记录。 常用语句 -- 创建表 create table temp (`EventDate` DateTime, `UserId` UInt32) engine = MergeTree() partition by toYYYYMM(EventDate) order by...

CentOS 7 docker 容器无法访问宿主机

最近在 CentOS 7 下使用 docker,出现 No route to host 这个问题,查了下,应该是由于 CentOS 7 默认使用 firewalld 造成的,解决方法添加白名单就行,做个记录。 # 主要命令 firewall-cmd --help # docker0 网卡,不过我试了并没有成功 firewall-cmd --permane...

阿里云卸载监控等服务

卸载安骑士 wget http://update.aegis.aliyun.com/download/uninstall.sh chmod +x uninstall.sh ./uninstall.sh wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh chmod +x qua...

Docker ELK 配置

docker-compose.yml version: "3.3" services: elasticsearch: image: elasticsearch:6.4.3 environment: LOGSPOUT: ignore ES_JAVA_OPTS: "-Xmx256m -Xms...

虚拟机下无法访问宿主机

开发环境一直都是 Hyper-V 下虚拟机,但是最近不知道为什么,虚拟机无法访问宿主机,如虚拟机 IP 段为 237,在虚拟机内无法访问 128 或者 137 等 IP 段。 最后发现是某个网络接口的问题,停用该接口就行了。 一般某台主机无法 ping 的话,有两种情况:Request Timed Out 及 Destination Host Unrea...

iptables 使用

iptables 用于管理 Linux 防火墙配置,最近需要用到,作个记录。 主要内容来自:iptables 命令,Linux iptables 命令详解。 四表五链 四表 filter: iptables 默认表,具有链(INPUT、FORWARD、OUTPUT) nat: 用于 nat 功能,比如端口映射、地址映射等,具有链(PREROUTI...

Linux 下使用 Swap 文件

今天在使用 composer 升级库版本时,报错:proc_open(): fork failed - Out of memory,应该是机器内存不足,即使停掉了网站所有进程之后内存还是不够,后来发现可以使用 swap 文件来暂时充当内存使用。 使用 free -m 查看当前内存信息: total used ...

通过 fdisk 对磁盘分区扩容

最近 Hyper-V 里面虚拟机的硬盘容量不够用了,便在管理器里直接修改虚拟硬盘的大小,但是进去虚拟机查看并没有生效,网上查了下,还需要手动修改分区大小,这里用的是 fdisk 命令,从 50G 扩展到 200G。 记得操作前先设置一下检查点,以便恢复快照。 查看当前的挂载点: [email protected]:~$ df -Th Filesystem ...

laravel-swoole 使用

最近常用的 PHP 框架是 Laravel,而 PHP 框架本身启动都要加载不少文件,往往 QPS 不会很高。 Swoole 扩展本身就常驻内存,异步执行,可以为项目提高不少性能,刚好也有轮子可以使用 swooletw/laravel-swoole,做个记录。 安装非常简单,按照文档来就行。 Swoole 扩展 # 安装 sudo apt-get i...

WSL 设置字体失败

WSL 是我目前常用的 Linux 环境,在设置自定义字体保存的时候,某些情况下会失效,例如 Vim 编辑文件的时候,字体会还原成默认的。 这个问题修改注册表可以解决(Win + R,regedit)。 找到路径 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_bash.exe,然后添加 CodePage(...

WSL 文件权限问题

最近在 WSL 下碰到 PHP chmod(): Operation not permitted 这个问题,看起来是文件权限的问题,不过查看该文件的权限是 777,不知道是 Bug 还是什么原因导致的,Google 找了下,有说是 Windows 文件系统是 NTFS 的问题,Linux 挂载需要开启一些特性,解决办法是更改 wsl.conf 文件。 su...

PHP + Redis 简单消息队列

消息队列在高并发的时候,可以缓解对数据库的压力,下面使用 PHP + Redis(list) 简单模拟下这个过程。 $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $type = isset($_GET['type']) ? 'read...

Redis 有序集合使用

zset 是 Redis 的一种数据结构,为有序集合,每次插入新的值都会根据权重重新排序。 安装 sudo apt-get install redis-server # 安装 redis-server --daemonize yes # 后台启动 redis-cli # 进入命令行界面 使用 添加新值:zadd 键值 权重 标识。 127.0.0...

Docker + Nginx 简单模拟负载均衡

只是简单的单机模拟负载均衡,做个记录。 建立相应的静态文件 mkdir html1 echo '<h1>Hello World 1</h1>' > ./html1/index.html # 同样的建立 html2, html3 建立 Nginx 配置文件 default.conf upstream a...

Linux 搭建 Git 服务器

搭建 Git 服务器很简单,做个记录。 首先添加 git 用户并配置: sudo adduser git su git cd mkdir .ssh && chmod 700 .ssh touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys # 添加公钥到 a...

SSH 添加两步验证

为了服务器安全,一般都会使用密钥登录,但是有时候换到其他的电脑上进行登录就不方便了,有个简单的做法是在 SSH 登录时多加一层验证:Two-factor authentication (2FA),配置过程很简单,作个记录。 安装 Google’s PAM sudo apt-get update sudo apt-get install libpam-go...

Git 合并分支忽略 commit 记录

平常在测试的时候会开启测试分支,但是不能保证每次提交的 commit log 都是有意义的,而在合并测试分支的时候需要忽略掉这些 commit log,简单的做法是在合并的时候加上 --squash 参数,例如: git checkout master git merge --squash develop 执行了命令之后,会把 develop 修改过的...

Docker 笔记(持续更新)

安装 # docker curl -sSL https://get.docker.com/ | sh docker -v sudo groupadd docker sudo usermod -aG docker $USER groups $USER # 重新登录或重启机器之后生效 # docker-compose # https://docs.docke...

auth.log 记录大量 cron session 日志

今天在查看 auth.log 发现了大量 cron session 的日志,每隔一个小时就出现几次,看起来是定时任务在调用时以 root 用户执行而记录下来了,不过我的定时任务也没有这么频繁,不知道为什么会写入那么多记录。 Mar 5 16:17:01 *** CRON[9261]: pam_unix(cron:session): session ope...

SSH 密钥登录

一般登录 VPS 用密码的话容易被人暴力破解,如果换成密钥登录会好很多,配置过程也简单,做个记录。 生成密钥,最好在 Linux 下操作 # 中间会询问密钥保存目录,默认是 ~/.ssh 下,回车就行 # 如果想更加安全的话,密码短语也可以输入,回车留空也行 ssh-keygen -t rsa -C "comment" 生成之后,在 ...

Shadowsocks 使用 BBR 加速

之前有使用过 Vultr JP 节点的 VPS 来部署 SS,但是时不时丢包,用得不是很顺畅,最近看到 BBR 很好用的样子,配置简单且开源,决定试一试,部署很简单,主要是升级内核到 4.9 以上然后开启就行,由于 BBR 不支持 OpenVZ,所以 Bandwagonhost 的 VPS 应该是不能升级内核的,目前使用的是 Vultr,系统是 Ubuntu...

远程 SSH TAB 不能补全

最近在使用 PuTTY 连接服务器的时候,TAB 不能补全,而且方向键也没用,按了之后只显示字母,查了下原来补全是 bash 下的功能,而我创建的用户默认 shell 是 sh,所以要切换到 /bin/bash 才能使用 网上找到说可以使用 chsh 命令来修改 shell 环境 echo $SHELL # 查看当前 shell cat /etc/she...

Git 回滚到旧的提交

git reset,会清除 commit 记录,一般在仓库还没提交到远程时使用 # ~ 加数字指回滚最近几次的提交 git reset --hard HEAD~1 # 强制推送 git push -f origin master git revert,不会清除 commit 记录,而且会添加一条新的 commit 记录指明此次提交为回滚操作,一般当提交...

VirtualBox 下 Ubuntu 设置上网

最近在 VirtualBox 下安装 Ubuntu 玩,但是上网却是时好时坏,对 Linux 下的网络也不怎么懂,网上找了篇教程,暂时还可以用,作个记录。 环境 Windows 10, 虚拟机 Ubuntu Server 1604 有时候网络配置失败,会显示以下信息,需要等大概 5 分钟才能开机,把这个等待时间修改一下 A start job is r...

Git 忽略文件权限修改监控

在使用 git diff 时返回如下信息 old mode 100644 new mode 100755 原因是对文件权限进行了修改,如果要忽略 git 对文件权限的监控,修改下 git 的配置就行 git config core.filemode false 可以添加 --global 参数,但不会修改当前项目的配置。 ...

VPS 中安装 Shadowsocks

服务端安装 (Ubuntu1404) ssh <username>@<ip_address> -p <port> #ssh登录vps apt-get update apt-get install python-pip pip install shadowsocks apt-get install python-m2c...

Ubuntu 使用笔记

目录文件夹名称改为英文 export LANG=en_US xdg-user-dirs-gtk-update 在弹出的窗口中询问是否将目录转化为英文路径,同意并关闭,然后改回中文 export LANG=zh_CN 重启就行 Dos、Unix 文件编码转换 # vim :set ff=unix #转换为 Unix :set ff=dos #转换为 ...