开发环境入门 linux基础 (部分)while for 函数 计划任务
while循环
while
do
动作
done
需要无限循环时我们会选择while :
echo -e 格式处理,将\n的意义不变。
exit 指退出执行程序
break 指跳出本层循环
continue 跳出本次循环
用户登录程序,判断用户名密码输入是否非法,输入错误重新输入,登录成功之后,执行操作命令,输入exit 退出,重新登录

for循环
事例:
for i in {1..100}
do
echo $i
done
检测网络IP地址是否占用 (192.168.16.0/24段)
循环检测一个网段。
for i in {1,253}
do
ping -c1 192.168.16.$i &> /dev/null 将ping的处理文件全部处理为空,不在终端上打印处理文件。
if [ $? -ne 0 ]
then
echo '192.168.16.$i is available! '>> /tmp/a.txt
将数据直接导入到文档之中,不在终端上显示。
else
echo '192.168.16.$i is unavailable!'
fi
done
case语法
事例:
read -p "username: " -t 5 uname
echo
if [[ -z $uname ]]
then
uname=default
fi
case $uname in
#循环判定值在哪里
root) # root下,输出,;;表示结束。
echo "welcome $uname"
;;
seker)
echo "welcome $uname"
;;
default)
echo "welcome $uname"
;;
*) #查看所有
echo "no user $uname"
esac
函数
交互式shell中的函数
function
***(){ #定义一个函数
#注意:每条命令后都要加;
}***
return 返回值 可以自定义
计划任务 crontab
计划时间内要完成的任务,包已自动安装,并开机自启动
首先需要知道的是,无论是系统级还是用户级的cron计划都是文本文件,系
统的计划文件存放在/etc/crontab路径下。用户的计划文件放在/var/spool/cron/用户名,不管是哪一种,都可以满足我们定制计划任务的需求。
root用户可以直接对文件进行修改来编写计划任务也可以使用 crontab -e命令,而普通用户只能使用后者。除此之外,系统crontab文件中任务的定义也有所不同,在前五个部分之后插入了一个“用户”部分。
语法 :
crontab -e -u 用户名(权限)
crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
crontab任务配置基本格式:
* * * * * command
分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
查看计划任务配置 crontab -l date +%F_%T 时间格式
实例:
* * * * * echo ' date +%F_%T ' >>
/tmp/test.log 每分钟将数据打印到log文件中
查看cron服务是否起作用:
如果我们要查看定时任务是否准时调用了可以/var/log/cron中的运行信息
cat /var/log/cron
也可以用tail -f
/var/spool/mail/用户名,来查看普通用户的计划任务执行情况
此处需要记住两点:
第一:cron 守护进程每分钟都检查
/etc/crontab 文件、etc/cron.d/ 目录、以及
/var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个
crontab 文件改变后就不必重新启动守护进程了。
第二:crontab的用户手册中推荐每一个命令使用绝对路径,例如调用rm命令时写作:/bin/rm,这是为了防止由于每一个用户的PATH环境变量不同而导致命令无法找到的错误。
举例:
30 21 * * * /usr/local/etc/rc.d/apache
restart #每晚的21:30 重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/apache
restart #每月1、10、22日的4 : 45重启apache
10 1 * * 6,0 /usr/local/etc/rc.d/apache
restart #每周六、周日的1 : 10重启apache
0,30 18-23 * * * /usr/local/etc/rc.d/apache
restart #每天18 : 00至23 : 00之间每隔30分钟重启apache
0 23 * * 6 /usr/local/etc/rc.d/apache
restart #每星期六的11 : 00 pm重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/apache
restart #晚上11点到早上7点之间,每隔一小时重启 apache
* */1 * * * /usr/local/etc/rc.d/apache
restart #每一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/apache
restart #每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/apache
restart #一月一号的4点重启apache
*/30 * * * * /usr/sbin/ntpdate
210.72.145.44 #每半小时同步一下时间
0 */2 * * * www /usr/bin/somecommand
>> /dev/null 2>&1 #以用户www的身份每两小时就运行某个程序:
0 1 * * * /home/testuser/test.sh
每天晚上1点调用/home/testuser/test.sh
*/10 * * * * /home/testuser/test.sh
每10钟调用一次/home/testuser/test.sh
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd
restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd
restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * *
/usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd
restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd
restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd
restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed
/usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd
restart
一月一号的4点重启apache
*/30 * * * * /usr/sbin/ntpdate
210.72.145.44
每半小时同步一下时间
开发环境入门 linux基础 (部分)while for 函数 计划任务的更多相关文章
- 开发环境入门 linux基础(部分)虚拟内存,rpm和yum安装
虚拟内存,rpm和yum安装 文本中查找 /内容 替换:扩展模式下(:)%s /替换目标/要替换的文件/ (只替换第一个)(后边加g全部替换) :set u添加行号 raid lvm逻辑卷 df - ...
- 开发环境入门 linux基础 (部分)awk 赋值变量 if
awk 常用于处理格式非常明显的文件 awk -F: '{print $1}' /etc/passwd 含义:取冒号分隔符的第一段内容 $0 指取所有! NF 指有几段内容 $NF 取最后一段内容 ...
- 开发环境入门 linux基础 (部分)正则表达式 grep sed
/etc/profile /etc/bashrc .变量添加到shell环境中,永久生效. /root/.bashrc /root/.bash_profile 正则表达式 定义:正则就是用一些具有特 ...
- 开发环境入门 linux基础 (部分) 复制 用户和组操作 权限更改
复制 用户和组操作 权限更改 CP 复制命令 cp 源文件 目标文件 a) –r(recursive,递归的):递归地复制目录.当复制一个目录时,复制该目录中所有的内容,其中包括子目录的全部内容. b ...
- 开发环境入门 linux基础 基本操作命令(部分) 文本结构和基本命令
文本结构和基本命令 linux系统中系统提示符:$ 表示普通用户 su root切换用户命令(用户名 root),输入密码,切换到其他用户状态 root 命令提示符:# exit 退出当前用户,返回 ...
- 开发环境入门 linux基础 (部分)网络 SSH 更名 DNS解析 元字符
nginx---> web ifconfig 查看网络配置信息 id add show 查看当前网卡信息(最小安装下) mtu 是指网卡传输的最大单元 单位:字节 网卡配置 临时配置 ifcon ...
- 开发环境入门 linux基础 (部分)nginx和nfs
nginx和nfs 复习总结 rpm -ivh 软件包 --nodeps (没有依赖性安装) rpm -ivh 软件包 --force (覆盖安装) yum -y upgrade 升级所有包,不改变软 ...
- 开发环境入门 linux基础 (部分) 归档 压缩 Vi编译器 系统分区
归档 压缩 Vi编译器 系统分区 1.使用cat命令进行文件的纵向合并 1) 使用cat命令实现文件的纵向合并: a) 例如:将用户信息数据库文件和组信息数据库文件 ...
- 使用Ant搭建Android开发环境入门
使用Ant搭建Android开发环境入门 使用Ant搭建Android开发环境,建立android项目 配置Ant环境 下载Ant:http://ant.apache.org/bindownloa ...
随机推荐
- linux学习(rz和sz命令的安装和使用)
lrzsz的安装 [root@spark1 ~]# yum install lrzsz rz用法 终端直接输入rz,出现文件选择对话框,选择要上传的文件就ok sz用法 下载filename文件: s ...
- 执行Oracle存储过程报权限不足的解决方法
当前Oracle用户sofa拥有connect.dba.resource的角色权限,但奇怪的是却没有执行Oracle Procedure的权限.后来通过查找资料发现:如果sofa用户需要执行Proce ...
- Android fill_parent和wrap_content分析
fill_parent设置一个顶部布局或控件强制性让它布满整个屏幕.(这是不管内容大小,直接适应整个屏幕的大小,例长度设置了这,就只有长度适应屏幕的长度) wrap_content布局指根据视图内部内 ...
- CentOS6.4x84挂载U盘
root用户登录 1. 查看磁盘情况: fdisk -l 信息如下: [root@CentOS6 ~]# fdisk -l Disk /dev/sda: 128.8 GB, 128849018880 ...
- numpy函数:[6]arange()详解
arange函数用于创建等差数组,使用频率非常高,arange非常类似range函数,会python的人肯定经常用range函数,比如在for循环中,几乎都用到了range,下面我们通过range来学 ...
- SQL索引工作原理
SQL 当一个新表被创建之时,系统将在磁盘中分配一段以8K为单位的连续空间,当字段的值从内存写入磁盘时,就在这一既定空间随机保存,当一个8K用完的时候, SQLS指针会自动分配一个8K的空间.这里,每 ...
- SSIS的控制流之Foreach循环容器和序列容器
上一篇介绍了For循环容器的使用.本篇将介绍Foreach循环容器和序列容器的使用. Foreach循环容器 Foreach循环容器定义包中的控制流.其循环的实现类似于编程语言中的Foreach循环结 ...
- 02-大鸭梨博客系统数据库设计及Dapper的使用
毫无疑问,数据库的设计在一个系统中起了至关重要的作用.我们都知道,系统设计分为两部分,或者说是两个阶段,即数据库设计和功能设计.构建一个完善的系统需要这两个阶段的充分考量.周密设计.合理联接以及密切配 ...
- vue项目组件的全局注册
在vue-cli项目中,我们经常会封装自己的组件,并且要在多个界面中引用它,这个时候就需要全局注册组件. 首先我们会封装自己的组件,比如twoDimensionTable文件夹下的index.vue: ...
- 使用smart-npm和npm安装完毕之后发现 不是内部命令和外部命令!
我明明记得加入过path环境变量.我想一定是什么原因 一查bing.com然后发现没有在全局环境 .所以 只需要过npm install -g gulp 一句执行cmd这样就好 $ gulp提示gu ...