shell脚本

now=$(date "+%Y-%m-%d %H:%m")

${now}当前时间

${USER}当前登录用户

1.归档文件

需求:对重要数据进行归档备份

要求:输入一个目录名称,将目录下所有文件按天归档保存,并将归档日期附加在归档文件名上,放在指定目录/home/chenzijie/bak下,使用tar,-c表示归档,-z表示同时进行压缩,得到的文件后缀名为.tar.gz

#!/bin/bash
#首先判断输入参数个数是否为1
if [ $# -ne 1 ]
then
        echo "输入参数错误,应该输入一个参数,作为归档目录名"]
        exit
fi
#从参数中获取指定目录,先判断目录是否存在
if [ -d $1 ]
then
        echo "目录存在,开始归档"
else
        echo "目录不存在,请重新输入"
        exit
fi

DIR_NAME=$(basename $1)
DIR_PATH=$(cd $(dirname $1);pwd )

echo "文件名为:$DIR_NAME"
echo "绝对路径为:$DIR_PATH"

#获取日期
DATE=$(date +%y%m%d)
echo "当前日期$DATE"
#定义文件名
FILE=bak_${DIR_NAME}_$DATE.tar.gz
#保存的目录
DEST=/home/chenzijie/bak/$FILE

#开始归档
echo "开始归档"
tar -czf $DEST $DIR_PATH/$DIR_NAME

if [ $? -eq 0 ]
then
        echo "归档成功"
        echo "归档文件为$DEST"
else
        echo ""归档失败
fi

创建crontab定时任务,每天凌晨两点执行此脚本

0 2 * * * /home/chenzjie/test/filebak.sh