Linux中写脚本,同时去开启我们自己设定的多个服务(含定时脚本实现)

场景介绍:

在Linux中,我们通常开启服务需要使用systemctl start 服务名 命令,这样,如果开启一个服务还好,但是如果同时开启多个服务,难免会感到麻烦,这时,我们可以自定义一个脚本,去把多个开启服务的命令集合到一起,我们只需要执行脚本 即可快速开启多个服务。

一、代码

cd /    #进入根目录

mkdir myScript     #创建文件夹
vim init.sh     #编辑init.sh,然后保存
#!/bin/sh
#用于开机后,快速同时启动指定服务的脚本
systemctl start nginx
systemctl start redis-server
echo nginx和redis已经启动完毕
systemctl status nginx
systemctl status redis-server

chmod 777 init.sh    #赋予文件执行权限

/myScript/init.sh    #执行init.sh

注:这里,我在脚本里定义了开启nginx和redis服务,并且开启之后输出提示语句,查询nginx和redis状态,确认开启完毕。


二、效果展示

注:直接执行指定目录中的指定文件



三、Linux写定时脚本

在业务场景中,定时脚本也会时有用到,这里再额外介绍下怎么写定时脚本

注:这里使用的是crontab

1、crontab -e  #写定时任务

2、* * * * * /myScript/task_test.sh #在文件中添加这一行,然后保存(每分钟执行一次task_test.sh文件)

3、task_test.sh代码

#!/bin/sh
echo yes >> /data/task_test.txt

注意:编辑完task_test.sh,需要赋予文件权限,chmod 777  /myScript/task_test.sh

4、过几分钟后,查看/data/task_test.txt


说明定时任务执行成功。


注:

1、crontab参数

-e  编辑该用户的计时器设置。

-l  列出该用户的计时器设置。

-r  删除该用户的计时器设置。

-u<用户名称>  指定要设定计时器的用户名称。


2、crontab格式

crontab 格式:分钟   小时   日   月   周   command

第1列表示分钟 0~59 (每分钟用*或者 */1表示)

第2列表示小时 0~23(0表示0点)

第3列表示日期 1~31(5表示5号)

第4列 表示月份 1~12(1表示1月份)

第5列表示星期 0~7(0或者7表示星期日)

第6列表示要执行的命令(可以是系统命令,也可以是自己编写的脚本文件)


3、在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。


示例:

30 21 * * * /myScript/task_test.sh  就表示 每天的21:30执行一次task_test.sh文件

30 21 5 * * /myScript/task_test.sh 就表示 每个月的5号21:30执行一次task_test.sh文件

1 6 20 8 * /myScript/task_test.sh 就表示 8月20号06:01执行一次task_test.sh文件

30 2 * * 1,2,3,4,5 systemctl restart nginx 就表示 每个工作日的2:30重启nginx服务

* 23-7/1 * * * systemctl restart smb  就表示晚上11点到早上7点之间,每隔一小时重启smb 


注:了解更多,可以访问:https://www.cnblogs.com/intval/p/5763929.html




猜你喜欢

转载自blog.csdn.net/m_nanle_xiaobudiu/article/details/80728119
今日推荐