全球主机交流论坛
标题:
哪位大佬能帮忙写一个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命令或者群晖计划任务定时执行即可
#!/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"/*
复制代码
欢迎光临 全球主机交流论坛 (https://443502.xyz/)
Powered by Discuz! X3.4