在项目中频繁的关闭开启 chromedriver,即使是用了 driver.quit() 方法,也会在系统中占用一定的磁盘空间,这样反复下来,就会把服务器搞炸掉(亲身经历)
close只会关闭当前窗口
quit会退出驱动并关闭所关联的所有窗口,即使是这样也会有残留
所以我使用了Linux中杀死进程的方法去定时的清理服务器
shell脚本
编写一个简单的shell(.sh)脚本
- shell脚本的后缀为.sh
vim hello.sh # 创建一个名为hello的脚本文件
- 编写脚本
#! /bin/bash
echo "Hello word!" # 输出字符串 “Hello word!”
eval ps -ef|grep chrome|grep -v grep|cut -c 9-15|xargs kill -9 # 执行shell命令,这里我是用来杀死后台所有的chrome浏览器的
下面将这条命令作一下简单说明:
管道符"|"用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
“ps -ef” 是linux里查看所有进程的命令。这时检索出的进程将作为下一条命令"grep chrome"的输入。
“grep chrome” 的输出结果是,所有含有关键字"chrome"的进程。
“grep -v tomcat” 是在列出的进程中去除含有关键字"grep"的进程。
grep -v tomcat 尤其要注意,在列出chrome的进程之后,可能会包含Tomcat的进程,如果操作不当,可能会杀死整个项目,这里就除去了有关键字Tomcat的进程
“cut -c 9-15” 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
“xargs kill -9” 中的 xargs 命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该命令。"kill -9"会强行杀掉指定进程。
- 对此文件加入可执行权限
chmod +x ./hello.sh
- 执行刚写好的shell脚本
./hello.sh
定时任务
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
- 运行 crontab –e 编写一条定时任务 */5 * * * * /home/admin/hello.sh 在每5分钟执行一次test.sh脚本。
- 运行 crontab -l 查看当前用户的定时任务
这里我的定时任务是每天凌晨的3点18分运行shell脚本
其他关于定时任务知识:
1,crontab -e 编辑添加定时任务
2,*/2 * * * * /home/admin/hello.sh 每个两分钟执行一下脚本
3,crontab -l 查看该用户下的定时任务
4,crontab -u 定某个用户的cron服务
5,crontab -r 删除没个用户的cron服务
6,cron文件语法:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置