全球主机交流论坛

标题: 哪位大佬能帮忙写一个Linux自动备份命令 [打印本页]

作者: 我打了一辈子仗    时间: 2024-5-25 10:29
标题: 哪位大佬能帮忙写一个Linux自动备份命令


需求:在我群晖上定时把文件夹压缩,并且压缩文件自动根据当天日期命名


作者: 崇拜技术大佬    时间: 2024-5-25 10:39
写Linux命令,每天凌晨4点开始执行,把文件夹A下的所有文件压缩成zip格式,并把zip格式命名为以当天日期为名称

要在Linux系统中实现您的需求,可以使用cron来安排定时任务,并利用tar命令结合zip或直接使用zip命令来压缩文件。下面是一个示例步骤,首先设置cron任务,然后是用于压缩文件的命令。
步骤 1: 设置Cron任务

    打开终端。

    输入 crontab -e 命令来编辑当前用户的cron任务列表。这可能会使用您默认的文本编辑器(如vi或nano)打开cron文件。

    在文件末尾添加以下行来设定每天凌晨4点执行的任务。这条命令会在每天的4点0分执行我们接下来要写的shell脚本:

    0 4 * * * /path/to/your/script.sh

    请将/path/to/your/script.sh替换为您将要创建的脚本的绝对路径。

    保存并关闭编辑器。如果您使用的是vi,可以通过按下ESC键,然后输入:wq并回车来保存并退出。

步骤 2: 创建Shell脚本

在您选择的目录下(比如/home/yourusername/),创建一个名为script.sh的文件,并给予执行权限。可以用如下命令快速创建并授权:

bash

touch /path/to/your/script.sh

chmod +x /path/to/your/script.sh

然后,编辑这个脚本,加入以下内容来实现压缩功能。这里我们使用zip命令直接创建以日期命名的zip文件:

bash

#!/bin/bash


# 获取当前日期,格式为YYYYMMDD

DATE=$(date +%Y%m%d)


# 指定源文件夹

SOURCE_FOLDER="/path/to/folderA"


# 指定目标zip文件的存放路径和名称

TARGET_ZIP="/path/to/destination/folderA_$DATE.zip"


# 使用zip命令压缩文件夹内容到指定的zip文件

zip -r "$TARGET_ZIP" "$SOURCE_FOLDER/*"


# 如果需要删除原文件夹中的文件,请解除下面这行的注释

# rm -rf "$SOURCE_FOLDER"/*

请确保替换/path/to/folderA和/path/to/destination/为实际的路径。
注意事项

    确保zip命令已经安装在您的系统中。如果没有,可以通过包管理器安装,例如在Ubuntu上可以使用sudo apt-get install zip命令。
    如果您的文件名中包含特殊字符(如空格),可能需要在脚本中做额外的处理。
    上述脚本在压缩后会保留原文件。如果需要在压缩后删除原文件夹中的文件,请小心操作,确保数据安全。

这样设置后,您的系统就会每天凌晨4点自动执行该脚本,将文件夹A下的所有文件压缩成以日期命名的zip文件。
作者: songsong    时间: 2024-5-25 10:50
https://chatgpt.com/
作者: 我打了一辈子仗    时间: 2024-5-25 10:57
本帖最后由 我打了一辈子仗 于 2024-5-25 10:58 编辑

谢谢大家,最简单的方法就是创建一个sh
然后用crontab命令或者群晖计划任务定时执行即可

  1. #!/bin/bash

  2. # 获取当前日期,格式为YYYYMMDD
  3. DATE=$(date +%Y%m%d)

  4. # 指定源文件夹
  5. SOURCE_FOLDER="/path/to/folderA"

  6. # 指定目标zip文件的存放路径和名称
  7. TARGET_ZIP="/path/to/destination/folderA_$DATE.zip"

  8. # 使用zip命令压缩文件夹内容到指定的zip文件
  9. zip -r "$TARGET_ZIP" "$SOURCE_FOLDER/*"

  10. # 如果需要删除原文件夹中的文件,请解除下面这行的注释
  11. # rm -rf "$SOURCE_FOLDER"/*
复制代码





欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4