Hero Image
DIUN-容器镜像更新通知

我们通常可以将一台或多台服务器作为Docker主机,使用容器跑一些开源的工具服务。而往往我们不知道该什么时候这个这些应用有了更新的版本,最近发现了一个开源的工具,可以检查主机上运行的容器的镜像是否有更新,并可以通过集成多种渠道发送更新通知,这款工具就是 DIUN(Docker Image Update Notifier) 。 DUIN介绍 DUIN是一款使用GO语言编写的命令行工具,可以本地运行,也可以通过容器运行(开发者提供了构建好的镜像 ),当监控的容器镜像在相应的注册表(Registry)中更新时,可以接收到相应的通知。 DUIN支持多种监控配置(Providers): Docker - 分析Docker主机上运行容器的镜像,并检查其更新 Podman - 类似Docker,需要Podman以服务方式启动 Kubernetes - 分析Kubernetes集群中的Pods,检查pod使用的镜像 Swarm - 分析Swarm集群中服务使用的镜像 Nomad - 类似Docker,分析Nomad引擎运行的镜像 Dockerfile - 分析Dockerfile中引用的镜像 File - yaml格式的配置文件,直接配置需要检查的镜像信息 DUIN支持集成多种通知渠道,例如 Discord, Slack,Matrix,Telegram 以及 Webhook 等。 DUIN使用示例 这里将演示在Docker主机上使用Docker Compose来运行duin服务,并集成Slack,将通知发送到相应的频道。 docker-compose.yml : services: diun: image: crazymax/diun:latest container_name: diun hostname: home200-diun command: serve volumes: - diundata:/data - "/var/run/docker.sock:/var/run/docker.sock" environment: - "TZ=Asia/Shanghai" - "LOG_LEVEL=info" - "LOG_JSON=false" - "DIUN_WATCH_WORKERS=20" - "DIUN_WATCH_SCHEDULE=0 */6 * * *" - "DIUN_WATCH_JITTER=30s" - "DIUN_PROVIDERS_DOCKER=true" - "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true" - "DIUN_NOTIF_SLACK_WEBHOOKURL=https://hooks.

Hero Image
文件系统查找工具

众所周知,在Linux或者类Unix的文件系统中,想通过文件名关键字查找文件,可以通过find命令。那本文将推荐2款可以快速查找文件的工具,性能比find命令更好,可在某些场景下替换find的使用。 mlocate 大部分的Linux发行版的都提供了 mlocate 软件包,该软件包包含了一个locate命令用于查找文件,和一个updatedb命令用于更新文件索引供locate使用。 可直接通过系统的软件包管理工具直接安装 # CentOS/RHEL $ sudo dnf install mlocate # Debian/Ubuntu $ sudo apt install mlocate 安装完成后,首先需要执行以下命令进行文件索引 sudo updatedb 索引文件将默认存放在 /var/lib/mlocate/mlocatedb ,也可以修改配置文件 /etc/updatedb.conf 文件,添加某些不需要索引的文件夹,例如 # Paths which are pruned from updatedb database PRUNEPATHS="/tmp /var/tmp /var/cache /var/lock /var/run /var/spool /mnt /cdrom /usr/tmp /proc /media /sys /.snapshots /var/run/media" 完成索引之后,就可以使用 locate 命令进行文件查找了,例如 $ locate mlocate /etc/systemd/system/timers.target.wants/mlocate.timer /usr/bin/rpmlocate /usr/lib/systemd/system/mlocate.service /usr/lib/systemd/system/mlocate.timer /usr/sbin/rcmlocate /usr/share/doc/packages/mlocate /usr/share/doc/packages/mlocate/AUTHORS /usr/share/doc/packages/mlocate/ChangeLog /usr/share/doc/packages/mlocate/NEWS /usr/share/doc/packages/mlocate/README /usr/share/licenses/mlocate /usr/share/licenses/mlocate/COPYING /usr/share/man/man5/mlocate.db.5.gz /var/lib/mlocate /var/lib/mlocate/mlocate.