高级bash脚本编辑

2 篇文章 0 订阅

#!/bin/bash
 # rpm-check.sh
 # 这个脚本的目的是为了描述,列表,和确定是否可以安装一个 rpm 包.
 # 在一个文件中保存输出.
 #
 # 这个脚本使用一个代码块来展示
 SUCCESS=0
 E_NOARGS=65

 if [ -z "$1" ]
 then
 echo "Usage: `basename $0` rpm-file"
 exit $E_NOARGS
 fi
 {
 echo
 echo "Archive Description:"
 rpm -qpi $1 # 查询说明
 echo
 echo "Archive Listing:"
 rpm -qpl $1  # 查询列表
 echo
 rpm -i --test $1   # 查询 rpm 包是否可以被安装
 if [ "$?" -eq $SUCCESS ]
 then
       echo "$1 can be installed."
 else
       echo "$1 cannot be installed."
 fi
 echo
 }> "$1.test"  # 把代码块中的所有输出都重定向到文件中
 echo "Results of rpm test in file $1.test"
 # 查看 rpm 的 man 页来查看 rpm 的选项
 exit 0 

备份最后一天所有修改的文件

#!/bin/bash

# 在一个"tarball"中(经过 tar 和 gzip 处理过的文件)
#+ 备份最后 24 小时当前目录下 d 所有修改的文件.

BACKUPFILE=backup-$(date +%m-%d-%Y)
# 在备份文件中嵌入时间.
# Thanks, Joshua Tschida, for the idea.
 archive=${1:-$BACKUPFILE}
# 如果在命令行中没有指定备份文件的文件名,
#+ 那么将默认使用"backup-MM-DD-YYYY.tar.gz".
 tar cvf - `find . -mtime -1 -type f -print` > $archive.tar
 gzip $archive.tar
 echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."


 # Stephane Chazelas 指出上边代码,
 #+ 如果在发现太多的文件的时候,或者是如果文件
 #+ 名包括空格的时候,将执行失败.
 # Stephane Chazelas 建议使用下边的两种代码之一
 # -------------------------------------------------------------------
 find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
 使用 gnu 版本的 find.

 find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \;
 对于其他风格的 UNIX 便于移植,但是比较慢.
 # -------------------------------------------------------------------
 exit 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值