AutoHotkey 官网地址 https://www.autohotkey.com/,从官网可看到ahk可以干非常多的事情,可以让事情变得非常高效,官网给出的quickstart也非常简单,非常容易上手,我要分享的有两点:充分利用 Alt 键、常用APP一键切换,一键直达指定应用。
在Windows下的默认配置中,Alt 键的作用并不是那么大,在使用AutoHotkey之前,我用Alt键的地方主要有:
Ctrl + Alt + Delete
调出任务管理器。Alt + F4
关闭窗口,也不是很好用,因为F4键太远了。Alt + Tab
最近的两个窗口来回切换,这个可能是用的最多的了。所以,Alt
并没有充分利用起来,然后Alt
又占据了非常优秀键盘位置,离大拇指最近。所以你可以使用 AutoHotkey 把Alt
键充分利用起来。
# centos
sudo yum -y install dnsmasq
# ubuntu
sudo apt-get -y install dnsmasq
# 关掉默认的解析服务避免端口冲突
sudo systemctl stop systemd-resolved.service
sudo systemctl disable systemd-resolved.service
# 启动服务
sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq
sudo systemctl status dnsmasq
/etc/hosts
文件。dnsmasq
的缓存。dnsmasq
配置的上游dns服务器地址。在脚本中需要并发执行多个命令,比如,需要同时登录到10台机器,并在10台机器是分别格式化磁盘。格式化磁盘是一个耗时的操作,如果顺序执行的话,会非常耗时。所以可以使用后台执行,使用wait命令等待所有的后台命令返回。
当有多个任务时需要同时运行时,可按照如下格式编写。
#!/bin/bash
func1(){
sleep 3
echo "$(date) func1" | tee /tmp/func1
}
在某些场景需要实时读取文件的新增内容,使用linux的命令行tail不是很容易操作,所有有了python版本的tail,方便直接加入到脚本。
tail.py
import os
import sys
import time
class Tail:
def __init__(self, tailed_file, interval_seconds=1.0, start_position="end"):
self.tailed_file = os.path.abspath(tailed_file)
self.check_file_validity()
self.callback = sys.stdout.write
if start_position not in ("start", "end"):
raise Exception("start_position must be: start or end")
self.start_position = start_position
self.interval_seconds = interval_seconds
ssh远程登录或者使用ssh协议的命令(比如scp)慢时,可以按照如下步骤检查
关闭 服务端 的sshd服务DNS解析配置,在服务端:
sudo vim /etc/ssh/sshd_config
# 修改
UseDNS no
sudo systemctl restart sshd
# 当前时间 => 时间戳
date +%s
# 指定时间 => 时间戳
date +%s -d '2020-05-18 12:00:00'
# 安装工具jenv
brew install jenv
# 添加环境变量
sudo vim /etc/profile
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
source /etc/profile
jenv enable-plugin export
# 查看当前的java版本与JAVA_HOME
/usr/libexec/java_home
/usr/libexec/java_home -V
在多数集群中,节点的配置必须保持一致,一旦管理节点修改了配置,就需要把配置同步到其他节点,通常情况下是下面这样的,它的缺点是每次都需要写全路径。
scp -r /path/conf node1:/path/conf
scp -r /path/conf node2:/path/conf
scp -r /path/conf node3:/path/conf
使用 rsync 命令同步,同时自动获取到文件的绝对路径,脚本如下
sudo vim /usr/bin/xsync
sudo chmod +x /usr/bin/xsync
# 本地文件安装
rpm -ivh /path/yyy.rpm
# 远程下载安装
rpm -ivh ftp://ftp.xxx.com/yyy.rpm
rpm -ivh http://www.xxx.com/yyy.rpm
rpm包安装一般会是如下步骤
letsencrypt 的使用场景通常是有外网的时候,如果安装的nginx不能访问外网,同时也不能被外网访问,只能在内网发布,这时候letsencrypt就无法安装了,使用openssl手动生成证书可以解决此问题。
# 安装nginx
apt install nginx
vim /etc/nginx/conf.d/test.conf
server {
listen 80;
server_name www.test.com;
root /var/www/html;