一个简单的批量备份日志脚本

接上文。上文免密登录后,这篇文章简单做个日志定期备份,将其他机器上的日志整合到本地。逻辑较为简单,可以按需修改。最终效果是,每天将若干机器的文件整理成一个压缩包保存到本地,同时删除一年前的备份。这里就不过多赘述了。


一个 ssh 设置免密登陆脚本

近期应用运维的工作比较多,写了两个脚本。这一篇记录设置多台机器免密登录的。主要知识点如下:

  1. ssh-keygen 用于生成 rsa 公钥密钥。
  2. IFS 是字符串切割为数组的分隔符。
  3. 预先设置 /etc/ssh/sshd_config 里的免密登录。
  4. ssh-copy-id 用于拷贝公钥到目的服务器,授权免密登录。

脚本如下,修改前4个变量即可:

  • TARGET_IPS,填写IP和别称,可以 ssh 别称 免密登录到目的服务器。
  • IS_FULL_MESH,是否所有节点都能免密登录,还是只允许当前节点免密登录。
  • TARGET_USER_NAME,免密登录的用户名
  • RSA_NAME,密钥的名字

批量检测端口连通性

最简单的办法当然还是使用ansible。

不过客户的一些生产环境没有使用ansible,就写了个简单的脚本测试了下。

关注点:

  1. 开头取了eth0这个网卡的IP地址。
  2. 在同一个目录下保存 ip_info这个文件,每行填写ip:port

Linux 中使用 Ghostscript 压缩 pdf 文件

安装

大多数 Linux 发行版已经包含了 Ghostscript 的开源版本。如果没有的话如下安装:

apt install ghostscript

使用

假如我要压缩 编程珠玑.pdf 这个文件:

/usr/bin/gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -dColorImageResolution=150 -sOutputFile=编程珠玑_compressed.pdf 编程珠玑.pdf

关于压缩质量,我们只要修改 dPDFSETTINGS 这个参数即可:

dPDFSETTINGS 描述
/prepress(默认) 高质量 (300 dpi) 但文件较大
/ebook 中质量 (150 dpi) 适中的文件大小
/screen 低质量 (72 dpi) 但输出文件较小

ebook 是在文件大小和清晰度上比较合适的,我就用了它。压缩了40%左右。

image-20220725102425521

其他更多参数参考 Ghostscript 在线文档