shell批量启动关闭jar 以及定时调用python爬虫(签到)
1.linux 上安装python
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
2.配置
cd Python-3.7.2 ./configure prefix=/usr/local/python3
3.make 安装
make && make install
4.建立软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
如果软链接已存在,删除已存在的软链接
rm -rf /usr/bin/pip3
5.查看python和pip的版本
python3 -V
pip3 -V
6.环境配置
7.配置镜像
参考:https://blog.csdn.net/qq_35385687/article/details/123518062
#! /bin/sh #1,启动所有jar包:sh all.sh start all 或者./sh start all #2,停止所有jar包:sh all.sh stop all 或者./sh stop all #3,重启所有jar包:sh all.sh restart all 或者./sh restart all #4,重启或者停止单个jar包,只需要将all替换为相应的模块代码就行 # 端口号 PORTS=(8082 8090 8092) # 系统模块 MODULES=(boot gateway performance) # 系统模块名称 MODULE_NAMES=(基础模块 网关 绩效) # jar包数组 JARS=(boot.jar gateway.jar performance.jar) # jar包路径 #JAR_PATH='/usr/local/beta' JAR_PATH='./jars' # 日志路径 #LOG_PATH='/usr/local/beta' LOG_PATH='./logs' mkdir $LOG_PATH start() { local MODULE= local MODULE_NAME= local JAR_NAME= local command="$1" local commandOk=0 local count=0 local okCount=0 local port=0 for((i=0;i<${#MODULES[@]};i++)) do MODULE=${MODULES[$i]} MODULE_NAME=${MODULE_NAMES[$i]} JAR_NAME=${JARS[$i]} PORT=${PORTS[$i]} if [ "$command" == "all" ] || [ "$command" == "$MODULE" ];then commandOk=1 count=0 PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'` if [ -n "$PID" ];then echo "$MODULE---$MODULE_NAME:已经运行,PID=$PID" else # exec nohup java -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/$MODULE.log & echo "nohup java -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/$MODULE.log &" nohup java -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/$MODULE.log & PID=`netstat -apn | grep $PORT | awk '{print $7}' | cut -d/ -f 1` while [ -z "$PID" ] do if (($count == 30));then echo "$MODULE---$MODULE_NAME:$(expr $count \* 10)秒内未启动,请检查!" break fi count=$(($count+1)) echo "$MODULE_NAME启动中.................." sleep 10s PID=`netstat -apn | grep $PORT | awk '{print $7}' | cut -d/ -f 1` done okCount=$(($okCount+1)) echo "$MODULE---$MODULE_NAME:已经启动成功,PID=$PID" fi fi done if(($commandOk == 0));then echo "第二个参数请输入:all|boot|gateway|performance" else echo "............本次共启动:$okCount个服务..........." fi } stop() { local MODULE= local MODULE_NAME= local JAR_NAME= local command="$1" local commandOk=0 local okCount=0 for((i=0;i<${#MODULES[@]};i++)) do MODULE=${MODULES[$i]} MODULE_NAME=${MODULE_NAMES[$i]} JAR_NAME=${JARS[$i]} if [ "$command" = "all" ] || [ "$command" = "$MODULE" ];then commandOk=1 PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'` if [ -n "$PID" ];then echo "$MODULE---$MODULE_NAME:准备结束,PID=$PID" kill -9 $PID PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'` while [ -n "$PID" ] do sleep 3s PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'` done echo "$MODULE---$MODULE_NAME:成功结束" okCount=$(($okCount+1)) else echo "$MODULE---$MODULE_NAME:未运行" fi fi done if (($commandOk == 0));then echo "第二个参数请输入:all|boot|gateway|performance" else echo "............本次共停止:$okCount个服务............" fi }
case "$1" in start) start "$2" ;; stop) stop "$2" ;; restart) stop "$2" sleep 3s start "$2" ;; *) echo "第一个参数请输入:start|stop|restart" exit 1 ;; esac
1,启动所有jar包:sh all.sh start all 或者./sh start all
2,停止所有jar包:sh all.sh stop all 或者./sh stop all
3,重启所有jar包:sh all.sh restart all 或者./sh restart all
4,重启或者停止单个jar包,只需要将all替换为相应的模块代码就行,例如sh all.sh stop sms
原文链接:https://blog.csdn.net/zimojiang/article/details/125542890
一个小实验
定时调用python爬虫(b站签到)
1.编写python爬虫代码
import time import requests url = 'https://www.bilibili.com/' headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 ' 'Safari/537.36', 'cookie': "你的cookie", } response = requests.get(url, headers=headers) now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) msg = "today have logined! corn + 1 " print(msg) try: with open('/home/python/bilibili/log.txt', 'a') as f: f.write('{} --- {}\n'.format(now, msg)) f.close() except Exception as e: print(e)
2.编写.sh脚本执行.py文件测试效果
test.sh文件
3.成功以后crontab -l 查看定时任务以及 crontab -e 添加任务