在日常的运维工作中,我们经常会对服务器的问价进行归档压缩,但归档压缩文件种类过多时,我们就要手动输入很多繁琐且重复的命令
如果能编写一个合理完善的自动归档压缩脚本,当我们要归档压缩时,选择所想压缩的格式,就可以自动的帮我们做好一些操作,以便我们能够快速且高效的完成任务!
写一个脚本,完成如下功能 传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;
(1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz;
(2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2; ?
(3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz;
(4) 其它任意值,则显示错误压缩工具,并执行非正常退出
使用vim工具编写一个归档脚本
[root@openEuler ~]# vim tar.sh
内容:
#!/bin/bash
# 将以下内容输出到终端可供选择
cat <<EOF
1、归档压缩为gzip格式
2、归档压缩为bzip2格式
3、归档压缩为xz格式
---------------------------
EOF
# 从键盘键入一个参数
read -p "请输入文件的压缩格式(1-4):" num
path=/backups
# 判断目录是否存在,不在则创建
[ -d $path ] || mkdir /backups
# case做的是字符比较(相同则执行)
case $num in
1 )
tar zcf $path/etc-`date +%F %T`.tar.gz /etc/*
;;
2 )
tar jcf $path/etc-`date +%F %T`.tar.bz2 /etc/*
;;
3 )
tar Jcf $path/etc-`date +%F %T`.tar.xz /etc/*
;;
* )
echo "错误压缩工具" ; exit
;;
esac
bash -n 可检测脚本语法是否正确(无报错则正常)
执行结果: