shell脚本demo

这篇博客介绍了如何使用expect自动化输入git推送时的用户名和密码,以及通过shell脚本实现服务器上的项目进程管理和启动。内容包括设置expect脚本进行Git认证,以及编写直接运行或带参数运行的服务器管理脚本,用于启动、关闭项目服务。
摘要由CSDN通过智能技术生成

git push自动化输入用户名密码

参考

## ---------------------------分割-----------------------------------
##yum install -y expect #需要先安装expect
# # 自动化输入用户名密码 用vscode不行 使用宝塔终端自动化成功
# #注解:这里指的下expect的执行目录 注意运行当前脚本要使用 /usr/bin/expect 文件.sh
# #!/usr/bin/expect 
# #注解:这里指的下监控多久时间内依然会自动输入密码,比如200s
# set timeout 2
# #注解:spawn 后面指的是要执行的shell脚本或者命令
# spawn git push
# #注解:指的是监控输入命令或脚本后将会提示需要输入密码的信息
# expect "Username for 'https://gitee.com':"
# #注解:自动填充用户名:Username@qq.com并确认
# send "Username@qq.com\n"
# #注解:指的是监控输入命令或脚本后将会提示需要输入密码的信息
# expect "Password for 'https://gitee.com':"
# #注解:自动填充密码:Password并确认
# send "Password\n"
# #注解:结束标签
# interact
## ---------------------------分割-----------------------------------

runserver直接运行版本

1.不用传入参数
#!/bin/sh

echo -e "\033[32m killed original process \033[0m"
#项目名称(两个名称最好保持一致)
project_name="tax_backend"
#虚拟环境名称
env_name="tax_backend"

echo "name = $name"
ids=`ps -ef | grep "$project_name" | grep -v grep | awk '{print $2}'`
echo "ids = $ids "
for id in $ids; do
    kill -9 $id
    echo "killed $id"
done

echo -e "\n"
echo -e "\033[32m entry $env_name environment \033[0m"
source ~/.bashrc
source /usr/local/python3/bin/virtualenvwrapper.sh
workon $env_name

#echo -e "\n"
#echo -e "\033[32m install requirement \033[0m"
#cd /root/project/tax_backend
#pip3 install -r requirement.txt

echo -e "\n"
echo -e "\033[32m run project \033[0m"
nohup python manage.py runserver 0.0.0.0:8000 &

echo -e "\n"
echo -e "\033[32m quit tax_backend environment \033[0m"
deactivate

2.传入参数
#! /bin/sh
#echo $0 文件名
#echo $1 第一个参数
#echo "$*" 所有参数列表
#echo "$@" 所有参数列表

#myname="lisalian" 定义变量
#echo $myname  输出变量
#echo ${myname} 输出变量
# ------------------上面是基本的用法-------------------------------

PROJECT_PATH="/data/web/"
is_work=1
# 判断是否有两个参数: 项目名:启动端口
if [ $# != "2" ]
then
    echo "usage: $0 <project_name> <runport>"
    is_work=0
fi

# 定义一个函数
run_temp_server(){
    project_name=$1 # 传到函数的第一个参数 $0依然是文件名
    runport=$2 # 第二个参数 端口
    #project_dir="$PROJECT_PATH$project_name/" # 拼接字符串
    #项目根目录
	project_dir=/www/wwwroot/default/Djjangosimpleuidemo1.0.0/yuanchengtest
    # 检查项目文件夹是否存在
    if [ ! -d $project_dir ]
    then
        echo "no such file or directory: $project_dir"
    # 存在则执行下面命令
    else
        # 像在终端一样使用这些shell 命令
        deactiavte
        source `which virtualenvwrapper.sh`
        cd $project_dir
        workon $project_name
        nohup python manage.py runserver 0.0.0.0:$runport &
		echo -e "\n"
		deactivate
    fi
}

if [ $is_work -eq "1" ]
then
    # 执行函数 并且传入参数
    run_temp_server  $1 $2
fi

执行命令

# 虚拟环境名称 端口号
sh runserver.sh owan_web 9006
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值