磁盘容量、日志采集、压缩、上传oss、每小时采集一次

383 阅读3分钟

查看磁盘容量

要查看服务器上的磁盘容量,可以使用以下命令之一:

  1. 使用 df 命令查看已挂载的文件系统的磁盘使用情况:

    df -h
    

    这将显示文件系统的磁盘使用情况,包括挂载点、总容量、已用容量、可用容量和使用百分比。

  2. 使用 du 命令查看特定目录的磁盘使用情况:

    du -h /path/to/directory
    

    这将显示指定目录及其子目录的磁盘使用情况。添加 -s 参数可以显示目录总的磁盘使用情况,而不显示每个子目录的详细信息。

编写一个的脚本

一个简单的Shell脚本,用于每小时采集、压缩和上传日志文件到阿里云 OSS。在运行此脚本之前,请确保已经安装了ossutil,并配置了正确的阿里云 OSS 访问密钥和配置信息。

#!/bin/bash

# 配置阿里云 OSS 相关信息
OSS_ENDPOINT="your_oss_endpoint"
OSS_BUCKET="your_oss_bucket"
OSS_ACCESS_KEY_ID="your_access_key_id"
OSS_ACCESS_KEY_SECRET="your_access_key_secret"

# 日志文件路径
LOG_DIR="/path/to/log/directory"

# 当前时间
CURRENT_HOUR=$(date +"%Y-%m-%d_%H")

# 日志文件名
LOG_FILE="your_log_file_name.log"

# 压缩文件名
ARCHIVE_NAME="$CURRENT_HOUR.tar.gz"

# 切换到日志文件目录
cd $LOG_DIR || { echo "Failed to change directory"; exit 1; }

# 创建压缩文件
tar -czf $ARCHIVE_NAME $LOG_FILE

# 上传到阿里云 OSS
ossutil cp $ARCHIVE_NAME oss://$OSS_BUCKET/$CURRENT_HOUR/$ARCHIVE_NAME -i $OSS_ACCESS_KEY_ID -k $OSS_ACCESS_KEY_SECRET -e $OSS_ENDPOINT

# 删除本地压缩文件
rm $ARCHIVE_NAME

echo "Log compression and upload complete."

请将脚本中的 your_oss_endpoint, your_oss_bucket, your_access_key_id, your_access_key_secret, /path/to/log/directory, your_log_file_name.log 替换为你的实际信息。

存储为log_upload.sh脚本文件

chmod +x log_upload.sh

这个命令是为了给脚本添加执行权限。接下来,可以通过以下命令来运行脚本:

./log_upload.sh

配置脚本执行的频率

要配置每小时执行一次脚本,可以使用 cron 作业调度器。打开终端,并输入以下命令:

crontab -e

然后在打开的编辑器中添加以下行:

0 * * * * /path/to/log_upload.sh

这会将脚本 /path/to/log_upload.sh 每小时的第0分钟执行一次。确保将 /path/to/log_upload.sh 替换为实际脚本文件的路径。编辑器可能会要求选择一个文本编辑器来编辑 cron 作业。保存并退出编辑器后,cron 就会每小时自动执行脚本。

另一种简单的方法是使用 systemd 的定时器。

你可以创建一个定时器单元来定期触发脚本。以下是一个示例:

首先,创建一个新的 systemd 定时器单元文件 /etc/systemd/system/log_upload.timer,并添加以下内容:

[Unit]
Description=Upload log every hour

[Timer]
OnCalendar=*-*-* *:00:00
Unit=log_upload.service

[Install]
WantedBy=timers.target

然后,创建一个与定时器关联的服务单元文件 /etc/systemd/system/log_upload.service,并添加以下内容:

[Unit]
Description=Upload log service

[Service]
Type=oneshot
ExecStart=/path/to/log_upload.sh

在这两个文件中,将 /path/to/log_upload.sh 替换为你的脚本文件的路径。然后,运行以下命令以重新加载 systemd 并启动定时器:

sudo systemctl daemon-reload
sudo systemctl enable log_upload.timer
sudo systemctl start log_upload.timer

这样,定时器就会每小时触发一次脚本。