写一键部署bash脚本

706c6375ebc3de26710bf6c78d6ec648.png

因为我开源的一键部署应用到linux服务器的AntDeploy, 在linux部署是需要安装一个agent服务(systemctl服务)

如果是手动第一次安装的话 需要敲

  1. 下载 wget

  2. 解压 tar

  3. 修改配置文件的token

  4. 复制到指定安装目录

  5. 设置权限

  6. 设置systemd

  7. 设置systemctl

  8. 清除临时文件

至少这8中类型的命令

如果我的agent需要更新版本的话,那么需要重新来一遍

  1. 下载 wget

  2. 解压 tar

  3. 配置文件保存备份

  4. 复制到指定安装目录,并恢复先前的配置

  5. 设置权限

  6. 设置systemd

  7. 设置systemctl

  8. 清除临时文件

这么多类型的命令,我们把它们都放在一个脚本文件里面,然后只需要一行命令就可以搞定,是不是很爽呢

curl https://files-cdn.cnblogs.com/files/yudongdong/install_antdeploy_agent.sh|sudo sh
#!/bin/sh

#当前时间戳
timestamp=$(date "+%Y%m%d%H%M%S")
#随机数
randomstr=$RANDOM
#生成token
md5hash=$(echo -n ${timestamp}${randomstr} | md5sum | head -c 32)
#先删除当前文件夹下的AntAgent.tar.gz文件
sudo rm -rf AntAgent.tar.gz >/dev/null 2>&1 &
#删除当前文件夹下的AntAgent文件夹
sudo rm -rf AntAgent >/dev/null 2>&1 &
#下载
sudo wget https://files.cnblogs.com/files/yudongdong/AntAgent.tar.gz
#解压到当前文件夹下的AntAgent文件夹
sudo tar -xvzf AntAgent.tar.gz --one-top-level
#停止AntAgent服务
sudo systemctl stop AntAgent >/dev/null 2>&1 &
#如果是更新的话 把配置文件放到temp目录下
if [ -d "/usr/AntAgent" ];then
   sudo cp -rf /usr/AntAgent/AntDeployAgentLinuxService.config AntAgent/AntDeployAgentLinuxService.config
   md5hash=''
else 
  #更改配置文件里的Token
  sudo sed -i -e 's/p@ssw0rd/'"$md5hash"'/g' AntAgent/AntDeployAgentLinuxService.config
fi
#删除安装目录的AntAgent文件夹
sudo rm -rf /usr/AntAgent >/dev/null 2>&1 &
#复制到安装目录
sudo mv -f AntAgent /usr/
#清除本地
sudo rm -rf AntAgent.tar.gz >/dev/null 2>&1 &
sudo rm -rf AntAgent >/dev/null 2>&1 &
#设置权限
sudo chmod +x /usr/AntAgent/AntDeployAgentLinuxService
#设置systemd
sudo cp /usr/AntAgent/AntAgent.service /etc/systemd/system/AntAgent.service
#设置systemctl
sudo systemctl daemon-reload
sudo systemctl enable AntAgent
sudo systemctl start AntAgent
sudo systemctl status AntAgent --no-pager
if [ -z "${md5hash}" ]; then
  echo 'OK, AntAgent has been updated in /usr/AntAgent.'
else 
  echo 'OK, AntAgent has been installed in /usr/AntAgent with Token:'"$md5hash"''  
fi
要点:
  • bash的获取当前时间戳

  • bash如何获取md5

  • bash如何做条件判断

  • bash如何做命令做容错处理

  • bash如何对字符串做拼接展示

  • bash如何更改文件里的内容

先关注收藏,没准你以后用到,节省你的时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一个在 Ubuntu 系统上一键部署 LNMP(Linux + Nginx + MySQL + PHP)的脚本: ``` #!/bin/bash # 安装 Nginx sudo apt-get update sudo apt-get install nginx -y # 安装 MySQL sudo apt-get install mysql-server -y # 安装 PHP sudo apt-get install php-fpm php-mysql -y # 配置 Nginx sudo sed -i 's/index index.html index.htm;/index index.php index.html index.htm;/g' /etc/nginx/sites-available/default sudo sed -i 's/# location ~ \.php$ {/location ~ \.php$ {/g' /etc/nginx/sites-available/default sudo sed -i 's/fastcgi_pass unix:\/var\/run\/php\/php7.0-fpm.sock;/fastcgi_pass unix:\/var\/run\/php\/php7.4-fpm.sock;/g' /etc/nginx/sites-available/default sudo echo '\tinclude fastcgi.conf;' >> /etc/nginx/sites-available/default sudo echo '}' >> /etc/nginx/sites-available/default # 重启 Nginx 和 PHP-FPM sudo service nginx restart sudo service php7.4-fpm restart # 检查是否部署成功 if [ $(curl -I -m 10 -o /dev/null -s -w %{http_code} localhost) == 200 ]; then echo "LNMP has been successfully installed!" else echo "Failed to install LNMP." fi ``` 请注意,在使用此脚本之前,请确保已安装 `curl` 命令。 ### 回答2: 一键部署LNMP脚本是一种自动化脚本,可以帮助快速搭建和配置LNMP(Linux+Nginx+MySQL+PHP)服务器环境。以下是一个简单的一键部署LNMP脚本的示例: ```bash #!/bin/bash # 安装必要的软件包 apt-get update apt-get install -y nginx mysql-server php-fpm # 配置Nginx rm /etc/nginx/sites-enabled/default cp /path/to/your/nginx-config /etc/nginx/sites-available/ ln -s /etc/nginx/sites-available/nginx-config /etc/nginx/sites-enabled/ service nginx restart # 配置MySQL mysql_secure_installation service mysql restart # 配置PHP cp /etc/php/7.2/fpm/php.ini /etc/php/7.2/fpm/php.ini.backup cp /path/to/your/php-config /etc/php/7.2/fpm/php.ini service php7.2-fpm restart echo "LNMP环境部署完成!" ``` 使用上述脚本,只需将Nginx配置文件和PHP配置文件替换为你实际使用的配置文件路径,然后运行脚本即可。脚本会自动更新系统软件包,安装Nginx、MySQL和PHP,并进行一些基本的配置。启动脚本后,你将拥有一个已配置好的LNMP服务器环境。 请注意,此示例仅作为参考脚本,具体配置和路径可能因操作系统和软件版本而有所不同。在实际使用中,建议根据自己的需求和环境进行适当的修改和优化。 ### 回答3: 一键部署LNMP(Linux + Nginx + MySQL + PHP)脚本是一种简化LNMP环境部署的工具,可将LNMP环境快速地搭建起来。下面是一个简单的一键部署LNMP脚本: #!/bin/bash # 安装 Nginx apt-get update apt-get install -y nginx # 安装 MySQL apt-get install -y mysql-server # 安装 PHP apt-get install -y php-fpm php-mysql # 配置 Nginx echo "server { listen 80; server_name example.com; location / { root /var/www/html; index index.php index.html index.htm; try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }" > /etc/nginx/sites-available/default ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/ # 重启 Nginx service nginx restart echo "LNMP环境部署完成!" 以上脚本首先更新系统并安装Nginx、MySQL和PHP,然后配置Nginx来处理PHP文件。最后,重启Nginx服务。执行该脚本后,LNMP环境就会被快速地搭建起来,并且可以在/var/www/html目录下放置网站文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值