之前的文章《一文讲解css3实现椭圆轨迹旋转(总结)》中,给大家介绍了如何用css3实现椭圆轨迹旋转的方法。下面本篇文章给大家怎么使用shell脚本实现服务器快速设置,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。
通过shell
脚本实现服务器快速设置
现在企业出海已经是常态,我们面临更多的国家地区服务器安装的工作。虽然云服务已经普及,还有各种SaaS
可以快速使用,但定制化需求会一直存在,那么快速部署的方法就很有必要。
目前与那些快速部署方法?
服务器镜像——最快,但必须在同一个供应商内,出海可能会不同地区用不同的云服务商,就无法实现。
docker
——可以通过镜像方式快速部署,应对复杂环境;shell
脚本——可以简化大多数复杂应用的安装,适合系统环境变化不大的情况,例如可以用同一个版本系统。
虽然shell
脚本的方式不如docker
和镜像好使,但如果你还没有尝试过,可以试一下,作为一个工具,可以极大提高效率,因为我们也看到,很多的linux
安装包也提供了类似的一键安装脚本。
在上脚本之前,先要说明一下我的服务器软件内容:
gitlab-runner
集成部署nodeJS
环境nodeJS
标准的跑在gitlab-runner
用户下使用
nvm
管理nodejs
版本使用
pm2
管理进程
下面是以我在游戏出海时使用的shell
脚本,简单说明如何通过shell
脚本快速部署:
#!/bin/sh #第一句,基本是所有sh脚本的标准开头 # Centos 7.8 #说明这个脚本适用的系统和版本,给人看的 #硬盘目录:#变量声明 DISK_PATH="/data" #之前已经mount好的硬盘路径 #hostname: HOSTNAME="my_server_name" #服务器名字,方便登录后区分 #gitlab-runner: GITLAB_RUNNER="https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" #nodejs version NODE_VERSION="v8.17.0" #NVM #nvm安装脚本 NVM_SCRIPT="https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh" #PM2 #pm2版本 PM2="pm2" #pm2 data path: #pm2日志路径,我们不希望放到系统盘中 PM2_DATA_DIR="pm2Data" # 下方会组合成完整的路径 DISK_PATH+/PM2_DATA_DIR echo "开始安装SDK channel套件============" if [ -n "$HOSTNAME" ] # if的使用方式,大家需要去了解一下,-n是如果不为空的意思 then echo "修改hostname为:$HOSTNAME" hostnamectl set-hostname "$HOSTNAME" else echo "可以使用 'hostnamectl set-hostname newHostname' #设置当前hostname,立即生效,重启也生效" fi echo "准备开始,当前hostname:" hostname # 下面是一连串的安装和处理了 echo "基础准备:" yum install epel-release -y yum update -y echo "安装 htop:" yum install htop -y echo "安装 ngnix:" rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install nginx -y systemctl enable nginx systemctl start nginx touch "/etc/nginx/conf.d/virtual.conf" echo "安装gitlab-runner:" # For RHEL/CentOS/Fedora curl -L "$GITLAB_RUNNER" | sudo bash yum install gitlab-runner -y echo "alias lg='su -l gitlab-runner'" >> "$HOME/.bashrc" source "$HOME/.bashrc" echo "建立pm2Data目录:" PM2_FINALDIR="$DISK_PATH/$PM2_DATA_DIR" if [ ! -d "$PM2_FINALDIR" ]; then #-d是判断是不是目录,不是就创建 mkdir "$PM2_FINALDIR" fi chown gitlab-runner:gitlab-runner "$PM2_FINALDIR" #修改目录owner # 我会生成一个新的脚本到gitlab-runner目录,为什么这样做呢? # 因为需要在gitlab-ruuner用户跑服务,希望环境在目标用户那里。 # 另外的原因是,以其他用户身份安装pm2会出现问题,那我就跑2次脚本咯 echo "切换用户安装 node 套件" ######## nodejs.sh Start######## NODE_SHELL='/home/gitlab-runner/nodejs.sh' echo "#!/bin/sh # Centos 7.8 #硬盘目录: #nodejs version NODE_VERSION=\"$NODE_VERSION\" PM2_FINALDIR=\"$PM2_FINALDIR\" #NVM NVM_SCRIPT=\"$NVM_SCRIPT\" #PM2 PM2=\"$PM2\" echo \"安装 nvm\" curl -o- $NVM_SCRIPT | bash echo \"安装 node $NODE_VERSION:\" source \"\$HOME/.bashrc\" nvm install $NODE_VERSION nvm use $NODE_VERSION echo \"安装pm2: $PM2\" npm i $PM2 -g npm install --global coffeescript npm install --global gulp # pm2 目录的骚操作 PM2_HOME=\"\$HOME/.pm2\" if [ -d \$PM2_HOME ]; then echo '处理.pm2目录' pwd ll mv \$PM2_HOME $PM2_FINALDIR rm \$PM2_HOME -r ln -s $PM2_FINALDIR/ \$PM2_HOME else echo -e '.pm2 目录不存在' ln -s $PM2_FINALDIR/ \$PM2_HOME fi source \"\$HOME/.bashrc\" echo \"NodeJS 套件结束\"" > "$NODE_SHELL" chown gitlab-runner:gitlab-runner "$NODE_SHELL" chmod +x "$NODE_SHELL" # 让脚本可以运行 # sudo -H -u gitlab-runner bash -c "$NODE_SHELL" #无法跑pm2安装 echo "将切换到gitlab-runner 用户,然后运行./nodejs.sh" ######## nodejs.sh End ######## su -l gitlab-runner #切换用户,跑./nodejs.sh,就可以安装好nodejs环境 sudo gitlab-runner register # 注册gitlab-runner echo "完成" exit 0
这个脚本里遇到的最大问题是,我们目前无法在root
中安装pm2
,会报错。当然也可以通过研究解决,但万一以后pm2
版本更新了呢?研究出来的方法是不是不能用?所以干脆脚本生成脚本,再跑一次。coding
的时候记得字符串中的转义。
通过这个方式,我实现了另外2个共3个为一组的服务群快速安装。中间发生了一次,安装了一半的时候,发现供应商给错服务器了,只能3个服务器都需要重新安装!还好有脚本,否则真的是灾难!
推荐学习:Linux教程
以上是教你怎么使用shell脚本实现服务器快速设置(附代码)的详细内容。更多信息请关注PHP中文网其他相关文章!

进入Linux恢复模式的步骤是:1.重启系统并按特定键进入GRUB菜单;2.选择带有(recoverymode)的选项;3.在恢复模式菜单中选择操作,如fsck或root。恢复模式允许你以单用户模式启动系统,进行文件系统检查和修复、编辑配置文件等操作,帮助解决系统问题。

Linux的核心组件包括内核、文件系统、Shell和常用工具。1.内核管理硬件资源并提供基本服务。2.文件系统组织和存储数据。3.Shell是用户与系统交互的接口。4.常用工具帮助完成日常任务。

Linux的基本结构包括内核、文件系统和Shell。1)内核管理硬件资源,使用uname-r查看版本。2)EXT4文件系统支持大文件和日志,使用mkfs.ext4创建。3)Shell如Bash提供命令行交互,使用ls-l列出文件。

Linux系统管理和维护的关键步骤包括:1)掌握基础知识,如文件系统结构和用户管理;2)进行系统监控与资源管理,使用top、htop等工具;3)利用系统日志进行故障排查,借助journalctl等工具;4)编写自动化脚本和任务调度,使用cron工具;5)实施安全管理与防护,通过iptables配置防火墙;6)进行性能优化与最佳实践,调整内核参数和养成良好习惯。

Linux维护模式通过在启动时添加init=/bin/bash或single参数进入。1.进入维护模式:编辑GRUB菜单,添加启动参数。2.重新挂载文件系统为读写模式:mount-oremount,rw/。3.修复文件系统:使用fsck命令,如fsck/dev/sda1。4.备份数据并谨慎操作,避免数据丢失。

本文探讨如何在Debian系统上提升Hadoop数据处理效率。优化策略涵盖硬件升级、操作系统参数调整、Hadoop配置修改以及高效算法和工具的运用。一、硬件资源强化确保所有节点硬件配置一致,尤其关注CPU、内存和网络设备性能。选择高性能硬件组件对于提升整体处理速度至关重要。二、操作系统调优文件描述符和网络连接数:修改/etc/security/limits.conf文件,增加系统允许同时打开的文件描述符和网络连接数上限。JVM参数调整:在hadoop-env.sh文件中调整

本指南将指导您学习如何在Debian系统中使用Syslog。Syslog是Linux系统中用于记录系统和应用程序日志消息的关键服务,它帮助管理员监控和分析系统活动,从而快速识别并解决问题。一、Syslog基础知识Syslog的核心功能包括:集中收集和管理日志消息;支持多种日志输出格式和目标位置(例如文件或网络);提供实时日志查看和过滤功能。二、安装和配置Syslog(使用Rsyslog)Debian系统默认使用Rsyslog。您可以通过以下命令安装:sudoaptupdatesud

选择适合Debian系统的Hadoop版本,需要综合考虑以下几个关键因素:一、稳定性与长期支持:对于追求稳定性和安全性的用户,建议选择Debian稳定版,例如Debian11(Bullseye)。该版本经过充分测试,拥有长达五年的支持周期,能够确保系统稳定运行。二、软件包更新速度:如果您需要使用最新的Hadoop功能和特性,则可以考虑Debian的不稳定版(Sid)。但需注意,不稳定版可能存在兼容性问题和稳定性风险。三、社区支持与资源:Debian拥有庞大的社区支持,可以提供丰富的文档和


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1
好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版