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\r\n" >> /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`