1.2 什么是shell script,1.2是shellscript


  当命令或语句不在命令行执行,而是通过一个程序文件执行时,该程序就称为shell script或shell 程序。shell脚本文件中可以编写一系列命令和命令语句、变量和流程控制语句等结合起来就形成了一个功能强大的shell script

  shell 程序类似于DOS系统下的批处理程序(*.bat)

 

Windwos下利用批处理程序bat开发的备份网站及数据库的脚本 

@echo off
set date=%date:~0,4%-%date: ~5,2%-%date:~8,2%
mysqldump -uroot -ppassword -A -B > D:\back\"%date%".sql
rar.exe a -k -r -s -ml D:\bak\"%date%".sql.rar D:\bak\"%date%".sql
del D:\bak\*.sql
rar.exe a -k -r -s -ml D:\bak\"%date%"htdocs.rar D:\work\PHPnow\htdocs

 

清除/var/log/message 系统日志文件命令脚本

# 使用root身份运行这个脚本
# 清除日志版本,版本:v1
cd /var/log
cat /dev/null > messages
echo "Logs cleaned up."

 问题:

  1. 不是root执行权限执行不了

  2. 没有流程控制判断是否存在文件

LOG_DIR=/var/log
# $UID为0的时候,用户才具有root用户的权限
ROOT_UID=0

# 使用root用户来运行
if [ "$UID" -ne "$ROOT_UID" ]
then
  echo "Must be root to run this script."    
  exit 1
fi
cd $LOG_dir || {
  echo "Can't change to necesary directory." >&2
  exit 1
}
cat /dev/null > messages
echo "Logs cleaned up."
exit 0
# 推出之前返回0表示成功,返回1表示失败

  

清空日志的三种方法:

  # echo "" >test.log

  # >a.log

  # cat /dev/null > test.log

  应用场景:用于保留文件,清空内容

 

相关内容