当前位置: 代码迷 >> 综合 >> 【2020-05-08】crontab、shell、python脚本、虚拟环境、workon、重启redis
  详细解决方案

【2020-05-08】crontab、shell、python脚本、虚拟环境、workon、重启redis

热度:28   发布时间:2023-12-22 22:31:23.0

Shell crontab python workon 等常用脚本启动

  • crontab 执行shell、python脚本、虚拟环境、workon
    • crontab
      • 常用命令
      • contab 规则
      • 执行python
      • 执行shell
    • shell 脚本
        • 按进程名杀死线程
        • 结合kill杀死所有指定进程名 一行
        • 重启 test 进程
        • killall杀死进程
        • pkill杀死进程

crontab 执行shell、python脚本、虚拟环境、workon

crontab

常用命令

- crontab -e 编辑
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200508011246746.png)
- crontab -l 查看

在这里插入图片描述
- crontab -r 清除

  • 查看 crontab 日志
tail -f /var/log/cron

contab 规则

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

  minute   hour   day   month   week   command      

其中:
1、minute: 表示分钟,可以是从0到59之间的任何整数;
2、hour:表示小时,可以是从0到23之间的任何整数;
3、day:表示日期,可以是从1到31之间的任何整数;
4、month:表示月份,可以是从1到12之间的任何整数;
5、week:表示星期几,可以是从0到6之间的任何整数,这里的0代表星期日;
6、command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

执行python

  • python 虚拟环境

workon 在 crontab 里面执行会有问题,所以直接使用虚拟环境中的 python 启动脚本,如下

run_story.sh

cd /home/PyProject/scheduled_story
# source /usr/local/python/bin/virtualenvwrapper.sh
# sleep 3
# workon learnpy
# sleep 2
/home/PyProject/envs/learnpy/bin/python story.py

执行shell

redis_start.sh 重启redis

killall redis-server
echo "redis has stop..."
echo "sleep 5s"
sleep 5
sudo systemctl start redis

shell 脚本

  • 启动java脚本
nohup java -jar alisms-0.0.1-SNAPSHOT.jar &
yes | command or script

按进程名杀死线程

#!/bin/sh
PROCESS=`ps -ef|grep yace|grep -v grep|awk '{print $2}'`
for i in $PROCESS
do echo "KILL the yace-client "kill -9 $i
done
sh /home/baoleiji/yace/run_yace.sh

结合kill杀死所有指定进程名 一行

ps -ef | grep process_name | grep -v grep | awk '{print $2}' | xargs kill -9

重启 test 进程

PROCESS=`ps -ef|grep test|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
doecho "Kill the python process [ $i ]"kill -9 $i
done
sleep 15
nohup python test.py >test_log.txt 2>&1 &

killall杀死进程

要给完整的进程名

killall process_name 

pkill杀死进程

pkill process_name