shell编程-文件归档
阅读原文时间:2023年08月11日阅读:1

需求说明:设置定时任务,每天凌晨1点进行将指定目录(/root/scripts)下文件按照archive_目录名_年月日.tar.gz的格式归档存放到/root/archive 路径下。

1、编写脚本文件archive_script.sh

1 #!/bin/bash
2 # 检查参数格式是否是1
3 if [ $# -ne 1 ]
4 then
5 echo "参数个数错误,应该输入一个参数作为归档目录名!"
6 exit
7 fi
8
9 # 检查参数是否为目录
10 if [ -d $1 ]
11 then
12 echo
13 else
14 echo "参数不是一个目录,请检查!"
15 exit
16 fi
17
18 # 获取目录名称和路径
19 DIR_NAME=$(basename $1)
20 DIR_PATH=$(cd $(dirname $1);pwd)
21
22 # 获取当前日期
23 DATE=$(date +%y%m%d)
24
25 # 定义生成的归档文件名称
26 FILE=archive_${DIR_NAME}_$DATE.tar.gz
27 DEST=/root/archive/$FILE
28
29 # 进行归档
30 echo "开始归档…"
31 tar -zcf $DEST $DIR_PATH/$DIR_NAME
32
33 # 判断归档是否成功
34 if [ $? -eq 0 ]
35 then
36 echo "已归档成功!"
37 echo "归档文件为:$DEST"
38 exit
39 fi

2、给脚本文件的属主添加可执行权限

[root@hadoop129 scripts]# chmod u+x archive_script.sh

3、设置定时任务

[root@hadoop129 scripts]# crontab -e
* 1 * * * /root/scripts/archive_script.sh /root/archive

4、查询定时任务

[root@hadoop129 scripts]# crontab -l
* 1 * * * /root/scripts/archive_script.sh /root/archive