Create Systemd Service
- 创建 systemd 服务文件
vim /etc/systemd/system/your-service-name.service
- 添加以下内容到文件中
运行一个脚本
[Unit]
Description=Your Service Description
After=network.target # after: 指定在哪些服务之后启动
[Service]
Type=simple # simple: 运行一个简单的程序 | forking: 服务会fork出新的进程 | oneshot: 运行一次 | notify: 运行并等待通知 | exec: 运行一个命令
User=root
ExecStart=/bin/bash -c "your-bash-command-here"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target # multi-user.target: 运行在多用户模式下的目标
运行一个程序
[Unit]
Description=Backup Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/bin/bash -c "tar -czf /backup/backup-$(date +%Y%m%d).tar.gz /home/user/data"
Restart=on-failure
[Install]
WantedBy=multi-user.target
- 启动服务
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start your-service-name
# 设置开机启动
sudo systemctl enable your-service-name
# 检查服务状态
sudo systemctl status your-service-name
# 停止服务
sudo systemctl stop your-service-name
# 禁用开机启动
sudo systemctl disable your-service-name
# 查看服务日志
sudo journalctl -u your-service-name -f
Free Disk Space
Cleanup
- find first 10 biggest files
dnf install ncdu
# 找出当前目录下最大的10个文件/目录
du -ah . | sort -rh | head -n 10
# 找出家目录下大于100M的文件
find ~ -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
- clean cache
rm -rf ~/.cache/*
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
- clean images
# 删除所有停止的容器
podman container prune -y
# 删除所有未被任何容器引用的镜像(悬空镜像)
podman image prune
# 更激进的清理:删除所有未被运行的容器使用的镜像
podman image prune -a
# 清理构建缓存
podman builder prune
# 最彻底的清理:删除所有停止的容器、所有未被容器使用的网络、所有悬空镜像和构建缓存
podman system prune
podman system prune -a # 更加彻底,会删除所有未被使用的镜像,而不仅仅是悬空的