文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>shell 例程库

shell 例程库

时间:2007-10-20  来源:ank

更新中... 1 简单处理log
 1 #!/bin/bash 2 # 清除, 版本 3 3  4 # 警告: 5 # ----- 6 # 这个脚本有好多特征, 7 #+ 这些特征是在后边章节进行解释的. 8 # 大概是进行到本书的一半的时候, 9 #+ 你就会觉得它没有什么神秘的了. 10  11  12  13 LOG_DIR=/var/log 14 ROOT_UID=0 # $UID为0的时候,用户才具有root用户的权限 15 LINES=50 # 默认的保存行数 16 E_XCD=66 # 不能修改目录? 17 E_NOTROOT=67 # 非root用户将以error退出 18  19  20 # 当然要使用root用户来运行. 21 if [ "$UID" -ne "$ROOT_UID" ] 22 then 23  echo "Must be root to run this script." 24  exit $E_NOTROOT 25 fi 26  27 if [ -n "$1" ] 28 # 测试是否有命令行参数(非空). 29 then 30  lines=$1 31 else 32  lines=$LINES # 默认,如果不在命令行中指定. 33 fi 34  35  36 # Stephane Chazelas 建议使用下边 37 #+ 的更好方法来检测命令行参数. 38 #+ 但对于这章来说还是有点超前. 39 # 40 # E_WRONGARGS=65 # 非数值参数(错误的参数格式) 41 # 42 # case "$1" in 43 # "" ) lines=50;; 44 # *[!0-9]*) echo "Usage: `basename $0` file-to-cleanup"; exit $E_WRONGARGS;; 45 # * ) lines=$1;; 46 # esac 47 # 48 #* 直到"Loops"的章节才会对上边的内容进行详细的描述. 49  50  51 cd $LOG_DIR 52  53 if [ `pwd` != "$LOG_DIR" ] # 或者 if[ "$PWD" != "$LOG_DIR" ] 54  # 不在 /var/log中? 55 then 56  echo "Can't change to $LOG_DIR." 57  exit $E_XCD 58 fi # 在处理log file之前,再确认一遍当前目录是否正确. 59  60 # 更有效率的做法是: 61 # 62 # cd /var/log || { 63 # echo "Cannot change to necessary directory." >&2 64 # exit $E_XCD; 65 # } 66  67  68  69  70 tail -$lines messages > mesg.temp # 保存log file消息的最后部分. 71 mv mesg.temp messages # 变为新的log目录. 72  73  74 # cat /dev/null > messages 75 #* 不再需要了,使用上边的方法更安全. 76  77 cat /dev/null > wtmp # ': > wtmp' 和 '> wtmp'具有相同的作用 78 echo "Logs cleaned up." 79  80 exit 0 81 # 退出之前返回0, 82 #+ 返回0表示成功.

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

 1 #!/bin/bash 2  3 # 在一个"tarball"中(经过tar和gzip处理过的文件) 4 #+ 备份最后24小时当前目录下d所有修改的文件. 5  6 BACKUPFILE=backup-$(date +%m-%d-%Y) 7 # 在备份文件中嵌入时间. 8 # Thanks, Joshua Tschida, for the idea. 9 archive=${1:-$BACKUPFILE} 10 # 如果在命令行中没有指定备份文件的文件名, 11 #+ 那么将默认使用"backup-MM-DD-YYYY.tar.gz". 12  13 tar cvf - `find . -mtime -1 -type f -print` > $archive.tar 14 gzip $archive.tar 15 echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"." 16  17  18 # Stephane Chazelas指出上边代码, 19 #+ 如果在发现太多的文件的时候, 或者是如果文件 20 #+ 名包括空格的时候, 将执行失败. 21  22 # Stephane Chazelas建议使用下边的两种代码之一: 23 # ------------------------------------------------------------------- 24 # find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar" 25 # 使用gnu版本的"find". 26  27  28 # find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \; 29 # 对于其他风格的UNIX便于移植, 但是比较慢. 30 # ------------------------------------------------------------------- 31  32  33 exit 0

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载