Shell命令

计划任务相关

  yum -y install crontabs

  /sbin/service crond start //启动服务
  /sbin/service crond stop //关闭服务
  /sbin/service crond restart //重启服务
  /sbin/service crond reload //重新载入配置

  查看crontab服务状态:service crond status

  手动启动crontab服务:service crond start

  查看crontab服务是否已设置为开机启动,执行命令:ntsysv

  没有就加入开机自动启动:免得每次手动启动麻烦:chkconfig --level 35 crond on

  crontab -e

  0 1 * * * /home/shell/cut_log/cut_nginx_log.sh

  service crond reload

1.read 从键盘读入数据,赋值给变量
    例如: read USERNAME    
2.sh -x shell脚本  可以查看脚本执行过程

3.expr 算数运算
    例如: eppr 3 + 5
        expr $var1 - 5
        expr $var1 / $var2  //取整小数点以后的省略
        expr $var3 * 10
        expr `expr 5 + 7` / $var4
        var4=`expr $val1 / $var2`
4.test 变量测试  测试变量是否相等 是否为空 文件类型
    格式:test 测试条件
    例如:test str1=str2
        test str1!=str2
        test str1
        test -n str1
        test -z str1
        
        test -a file  是否存在
        test -d file 是否目录
        test -w file  是否可写
        
        test -eq 0
    语句:
        if test -d $1 then
            ...
        fi
    简化:
        test -d $1 等价于 [-d $1 ]
5.流程控制
    if 条件1 then
        命令1
    elif 条件2 then
        命令2
    else
        命令3
    fi
    
    -a 逻辑与 and
    -0 逻辑或 or
    exit 退出
    exit 0 正常退出
    exit 数字  返回错误码
6.循环
    for 变量 in 名字表
    do
        命令列表
    done

  实例:循环的时候累加

 #!/bin/sh
num=0
cat a.c | while read line
do
 echo $line
num=`expr $num + 1`
done
echo $num

7. shell遍历目录下所有文件 

filelist=`ls /home/work/file/`
for file in $filelist
do 
echo $file
done

 注意的是 文件名中不能有空格  否则会当成当成多个文件

 8.linux 下查看文件个数及大小

  find /www/fengzi/ipa  -type f | wc -l

9.Linux查看文件夹大小

  du -sh 查看当前文件夹大小

  du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序

  du -sk filename 查看指定文件大小

10.查询文件夹下所有文件

#!/bin/sh
#wget from pp download pp.ipa

URI=0
cd /www/fengzi/ipa/

filelist=`ls -R /www/fengzi/ipa/`
for file in $filelist
do
URI=`pwd`
echo "$URI/$file
" >> /www/fengzi/all.txt
done

 11. 切分nginx日志

#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/usr/local/nginx/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=`date -d "yesterday" +"%Y%m%d"`

## 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

  

原文地址:https://www.cnblogs.com/mr-amazing/p/3760823.html