bash 脚本来备份文件

bash 脚本来备份文件

我有几个文件需要备份。我需要一个脚本来检查文件的行数,如果超过 8000 行,它会简单地压缩它并使用日期前缀格式命名。我需要你的帮助。

答案1

该脚本将获取行号,然后如果行号超过 7999(大于或等于 8000),它将生成该文件的 .tar.gz。

#! /bin/bash

lif=$(wc -l < /home/USER/path/to/file.txt)

if [ "$lif" -gt 7999 ]; then
    tar /home/USER/path/to/where/you/want/the/backup/to/be/filename-$(date +%Y-%m-%d-%H:%M).tar.gz /home/USER/path/to/file.txt

不要忘记对脚本进行 chmod 以使其运行 -chmod +x /home/USER/path/to/script.sh

cron 命令将0 17 * * * /home/USER/path/to/script.sh在每个工作日下午 5 点运行。使用这个发电机如果您希望它有所不同,请帮助获取 cron 命令。

谢谢@Jnuk用于发电机!

答案2

这是一个执行您描述的操作的示例脚本

#!/bin/sh

FILENAME=$1
LINES=$(cat "$FILENAME" |wc  | awk '{print $1}')
MAXLINE="8000"
DATE=$(date +'%Y-%m-%d')
BACKUP_PATH="/path/to/files/"


do_backup(){
        tar xvf ""backup_$DATE.tar"" "$BACKUP_PATH"
}

if [ "$LINES" -gt "$MAXLINE" ];
then
        do_backup
fi

首先声明一些变量,

FILENAME 是您要检查其长度的文件。

LINES 是我们检查文件时找到的行数

MAXLINES 是我们在进行备份之前允许的最大行数。

DATE 是今天的日期,格式为“年-月-日”

BACKUP_PATH 是您要备份的目录。

do_backup 是包含备份命令的函数

将脚本保存到终端中的文件中:

chmod +x  script_name

使其可执行

./脚本名称 /路径/到/文件要检查的行数

如果您想进一步了解脚本的工作原理,请尝试使用以下命令运行它:

sh -x 脚本名称

相关内容