1 | brew install enca |
rsync同步
简介
rsync 全名 Remote Sync,是类 unix 系统下的数据镜像备份工具。可以方便的实现本地,远程备份,rsync 提供了丰富的选项来控制其行为。rsync 优于其他工具的重要一点就是支持增量备份。
本地备份示列
1 | 0 * * * * rsync -arv --delete /home/bluexiii/Documents/work /media/bluexiii/HITACHI/Documents |
远程备份示列
SSH公钥复制:
1 | ssh-copy-id root@56.32.4.68 |
crontab配置:
1 | 0 * * * * rsync -arv /home/minio/data root@56.32.4.68:/home/minio/data |
参考文档
systemd学习笔记
参考文档
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
systemctl
重启
1 | systemctl reboot |
关闭
1 | systemctl poweroff |
CPU停止工作
1 | systemctl halt |
暂停系统
1 | systemctl suspend |
休眠
1 | systemctl hibernate |
交互式休眠
1 | systemctl hybrid-sleep |
###单用户状态
1 | systemctl rescue |
systemd-analyze
启动耗时
1 | systemd-analyze |
每个服务的启动耗时
1 | systemd-analyze blame |
瀑布状的启动过程流
1 | systemd-analyze critical-chain |
显示指定服务的启动流
1 | systemd-analyze critical-chain atd.service |
hostnamect
显示当前主机的信息
1 | hostnamectl |
设置主机名
1 | hostnamectl set-hostname xxxx |
localectl
查看本地化设置
1 | localectl |
设置本地化参数
1 | localectl set-locale LANG=en_GB.utf8 |
timedatectl
查看当前时区设置
1 | timedatectl |
显示所有可用的时区
1 | timedatectl list-timezones |
设置当前时区
1 | timedatectl set-timezone America/New_York |
loginctl
列出当前session
1 | loginctl list-sessions |
列出当前登录用户
1 | loginctl list-users |
列出显示指定用户的信息
1 | loginctl show-user root |
查询状态
列出正在运行的 Unit
1 | systemctl list-units |
列出所有Unit,包括没有找到配置文件的或者启动失败的
1 | systemctl list-units --all |
列出所有没有运行的 Unit
1 | systemctl list-units --all --state=inactive |
列出所有加载失败的 Unit
1 | systemctl list-units --failed |
列出所有正在运行的、类型为 service 的 Unit
1 | systemctl list-units --type=service |
查询状态
显示系统状态
1 | systemctl status |
显示单个 Unit 的状态
1 | systemctl status bluetooth.service |
显示远程主机的某个 Unit 的状态
1 | systemctl -H root@rhel7.example.com status httpd.service |
显示某个 Unit 是否正在运行
1 | systemctl is-active application.service |
显示某个 Unit 是否处于启动失败状态
1 | systemctl is-failed application.service |
显示某个 Unit 服务是否建立了启动链接
1 | systemctl is-enabled application.service |
服务管理
立即启动一个服务
1 | systemctl start apache.service |
立即停止一个服务
1 | systemctl stop apache.service |
重启一个服务
1 | systemctl restart apache.service |
杀死一个服务的所有子进程
1 | systemctl kill apache.service |
重新加载一个服务的配置文件
1 | systemctl reload apache.service |
重载所有修改过的配置文件
1 | systemctl daemon-reload |
显示某个 Unit 的所有底层参数
1 | systemctl show httpd.service |
显示某个 Unit 的指定属性的值
1 | systemctl show -p CPUShares httpd.service |
设置某个 Unit 的指定属性
1 | systemctl set-property httpd.service CPUShares=500 |
列出一个 Unit 的所有依赖
1 | systemctl list-dependencies --all nginx.service |
配置文件的状态
列出所有配置文件
1 | systemctl list-unit-files |
列出指定类型的配置文件
1 | systemctl list-unit-files --type=service |
查看配置文件
1 | systemctl cat atd.service |
日志管理
查看所有日志(默认情况下 ,只保存本次启动的日志)
1 | journalctl |
查看内核日志(不显示应用日志)
1 | journalctl -k |
查看系统本次启动的日志
1 | journalctl -b |
查看上一次启动的日志(需更改设置)
1 | $ sudo journalctl -b -1 |
查看指定时间的日志
1 | journalctl --since="2012-10-30 18:17:16" |
显示尾部的最新10行日志
1 | journalctl -n |
显示尾部指定行数的日志
1 | journalctl -n 20 |
实时滚动显示最新日志
1 | journalctl -f |
查看指定服务的日志
1 | journalctl /usr/lib/systemd/systemd |
查看指定进程的日志
1 | journalctl _PID=1 |
查看某个路径的脚本的日志
1 | journalctl /usr/bin/bash |
查看指定用户的日志
1 | journalctl _UID=33 --since today |
查看某个 Unit 的日志
1 | journalctl -u nginx.service |
实时滚动显示某个 Unit 的最新日志
1 | journalctl -u nginx.service -f |
合并显示多个 Unit 的日志
1 | journalctl -u nginx.service -u php-fpm.service --since today |
查看指定优先级(及其以上级别)的日志,共有8级
1 | 0: emerg 1: alert 2: crit 3: err 4: warning 5: notice 6: info 7: debug |
日志默认分页输出,–no-pager 改为正常的标准输出
1 | journalctl --no-pager |
以 JSON 格式(单行)输出
1 | journalctl -b -u nginx.service -o json |
以 JSON 格式(多行)输出,可读性更好
1 | journalctl -b -u nginx.service -o json-pretty |
显示日志占据的硬盘空间
1 | $ sudo journalctl --disk-usage |
指定日志文件占据的最大空间
1 | $ sudo journalctl --vacuum-size=1G |
指定日志文件保存多久
1 | $ sudo journalctl --vacuum-time=1years |
Visio替代品
- mermaid + markdown
- ProcessOn
- yed
- 亿图图示 Edraw Max
- www.draw.io
- dia
- chrome 离线应用 Gliffy Diagrams
- Tikz
Kong部署笔记
Postgre安装
官网
rpm方式安装
https://yum.postgresql.org/rpmchart.php
postgresql11-11.4-1PGDG.rhel7.x86_64.rpm
postgresql11-contrib-11.4-1PGDG.rhel7.x86_64.rpm
postgresql11-libs-11.4-1PGDG.rhel7.x86_64.rpm
postgresql11-server-11.4-1PGDG.rhel7.x86_64.rpm
1 | rpm -ivh postgresql11* |
初始化DB
1 | /usr/pgsql-11/bin/postgresql-11-setup initdb |
启动
1 | systemctl enable postgresql-11 |
修改配置
cd /var/lib/pgsql/11/data
vi postgresql.conf
1 | listen_addresses = '*' |
vi pg_hba.conf
1 | host all all 0.0.0.0/0 md5 |
添加名为kong的用户
1 | useradd kong; |
1 | CREATE USER kong; CREATE DATABASE kong OWNER kong; |
1 | psql -U kong -d kong -h 127.0.0.1 -p 5432 |
Kong安装
Kong官网
参考文档
https://docs.konghq.com/install/centos/?_ga=2.146470708.1859714253.1563239338-1792454818.1563239338
RPM方式安装
1 | rpm -ivh kong-1.2.1.el7.noarch.rpm |
配置
1 | cp /etc/kong/kong.conf.defaul /etc/kong/kong.conf |
1 | database = postgres # Determines which of PostgreSQL or Cassandra |
初始化
1 | kong migrations bootstrap -c /etc/kong/kong.conf |
测试
curl -i http://localhost:8001/
GUI
Kong Admin GUI
https://docs.konghq.com/enterprise/0.31-x/admin-gui/
Konga
Neo4j学习笔记
下载
https://neo4j.com/download-center/
官方文档
参考文章
GUI
http://localhost:7474/browser/
bolt://127.0.0.1:7687
初始密码: neo4j/neo4j
APOC
官网
https://github.com/neo4j-contrib/neo4j-apoc-procedures
https://neo4j-contrib.github.io/neo4j-apoc-procedures/
配置
$NEO4J_HOME/conf/neo4j.conf
dbms.security.procedures.unrestricted=apoc.*
测试
1 | CALL dbms.functions() YIELD name |
1 | call apoc.help('meta'); |
Spring Data Neo4j
https://docs.spring.io/spring-data/neo4j/docs/5.1.9.RELEASE/reference/html/
net-tools对比iproute2
简介
iproute2是linux下管理控制TCP/IP网络和流量控制的新一代工具包,旨在替代老派的工具链net-tools,即大家比较熟悉的ifconfig,arp,route,netstat等命令。
net-tools是通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。
对照表
net-tools | iproute2 |
---|---|
arp -na | ip neigh |
ifconfig | ip link |
ifconfig -a | ip addr show |
ifconfig -s | ip -s link |
ifconfig eth0 up | ip link set eth0 up |
ipmaddr | ip maddr |
iptunnel | ip tunnel |
netstat | ss |
netstat -i | ip -s link |
netstat -g | ip maddr |
netstat -l | ss -l |
netstat -r | ip route |
route add | ip route add |
route del | ip route del |
route -n | ip route show |
ss常用操作
-s
查看当前服务器的网络连接统计
1 | ss -s |
-l
查看所有监听的网络端口,-p
并列出具体的程序名称
1 | ss -lp |
-a
查看这台服务器上所有的socket连接
1 | ss -a |
替代netstat -ntlp
1 | ss -nltp|column -t |
替代lsof -i
1 | ss -nltp|grep 18010 |
ip常用操作
检查网卡的诸如 IP 地址
1 | ip addr show |
启用/禁用网卡
1 | ip link set eth0 up |
配置IP地址
1 | ip addr add 10.211.55.13/24 brd + dev eth0 |
检查路由
1 | ip route show |
检查ARP记录
1 | ip neigh |
CentOS7安装KVM
参考文档
- https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%AF%A6%E8%A7%A3.md
- https://c.isme.pub/2017/06/17/kvm-install/
- https://www.tuxfixer.com/install-and-configure-kvm-qemu-on-centos-7-rhel-7-bridge-vhost-network-interface/
- http://www.91bg.top/archives/51/
- https://blog.51cto.com/11305268/1774531
关闭selinux
1 | setenforce 0 |
停用防火墙
1 | systemctl disable firewalld.service |
安装KVM
1 | yum -y install qemu-kvm libvirt virt-install bridge-utils |
安装后需要重启系统
开启libvirtd服务
1 | systemctl start libvirtd |
创建虚拟机
1 | virt-install \ |
虚拟机管理
1 | virsh list # 查看在运行的虚拟机 |
相关
1 | libvirt-client # libvirt的客户端,最重要的功能之一就是在宿主机关机时可以通知虚拟机也关机 |
图形界面
1 | yum install virt-manager |
配置桥接模式
停用NetworkManager
1 | systemctl stop NetworkManager |
cd /etc/sysconfig/network-scripts
vi ifcfg-br0
1 | DEVICE=br0 |
vi ifcfg-eth0
1 | TYPE=Ethernet |
CentOS7安装VirtualBox
下载
https://www.virtualbox.org/wiki/Downloads
安装
1 | yum install SDL-devel gcc kernel-devel |
启动
开启X11转发
1 | ssh -Y root@10.211.55.11 |
CentOS7配置TigerVNC
安装X11和Gnome
1 | yum groupinstall "X Window System" |
切换启动模式
1 | systemctl set-default multi-user.target //设置成命令模式 |
远程访问并启动X
1 | ssh -Y root@10.211.55.11 |
TigerVNC安装
yum install tigervnc tigervnc-server
设置vnc密码
1 | vncpasswd |
TigerVNC配置
1 | cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service |
TigerVNC启动
1 | systemctl daemon-reload |
VNC以590+x作为访问端口,第1个server是5901端口
macOS访问VNC
原生支持VNC访问,Finder中cmd+k,弹出窗口中输入
vnc://10.211.55.11:5901