centos7 FastDFS一键自动安装脚本

FastDFS 一键自动安装脚本

目录

  • FastDFS 一键自动安装脚本
    • 1. 简介
    • 2. 脚本功能
    • 3. 使用说明
      • 准备工作
      • 执行脚本
    • 4. 注意事项
    • 5.下载
    • 6.代码解释

1. 简介

该脚本是一个用于在离线环境下一键自动安装 FastDFS 的 Bash 脚本。它包含了安装 FastDFS 的所有步骤,包括安装依赖、安装 libfastcommon、安装 tracker、配置和启动 tracker、配置和启动 storage,以及将 FastDFS 配置为系统服务并设置为开机自启动。

2. 脚本功能

  • 安装所需的依赖包。
  • 解压并安装 libfastcommon。
  • 解压并安装 FastDFS。
  • 配置和启动 tracker。
  • 配置和启动 storage。
  • 将脚本复制到 /etc/init.d/ 目录下,并添加执行权限。
  • 创建 systemd 单元文件,设置 FastDFS 服务的启动、停止和重启命令。
  • 添加 FastDFS 服务为系统服务,并设置开机自启动。

3. 使用说明

准备工作

  • 确保脚本运行在具有足够权限的用户下。
  • 下载并准备好 FastDFS 的安装包,并将其放置在指定的路径下。

执行脚本

  • 执行脚本:./fastdfs_install.sh

4. 注意事项

  • 在执行脚本之前,请确保已经准备好了 FastDFS 的安装包,并放置在正确的路径下。
  • 确保脚本运行时具有足够的权限来执行系统级的操作。
  • 在脚本运行期间,请留意是否有任何错误信息输出,确保每个步骤都成功执行。

5.下载

见文章资源绑定

6.代码解释

#!/bin/bash
set -e# Tracker 服务器 IP 地址tracker_server_ip="192.168.0.106"# FastDFS 安装目录fastdfs_home="/dhxdata/fastdfs"
DEPENDENCY_DIR="/usr/local/autoinstall/third-lib/"
PACKAGE_DIR="/usr/local/autoinstall/lib/"
SCRIPT_NAME="fastdfs_startup.sh"
SERVICE_NAME="fastdfs_startup.service"
SERVICE_DIR="/etc/systemd/system/"echo "安装依赖..."
yum localinstall -y "$DEPENDENCY_DIR/gcc"/*.rpm
yum localinstall -y "$DEPENDENCY_DIR/gcc-c++"/*.rpm
yum localinstall -y "$DEPENDENCY_DIR/perl"/*.rpm# 安装 libfastcommoncd "$PACKAGE_DIR" || { echo "无法进入目录 $PACKAGE_DIR"; exit 1; }
if [[ ! -f "libfastcommon-1.0.7.tar.gz" ]]; thenecho "没有找到 libfastcommon 安装包"exit 1
fitar -zxvf libfastcommon-1.0.7.tar.gz || { echo "解压 libfastcommon 安装包失败"; exit 1; }
cd libfastcommon-1.0.7/ || { echo "无法进入目录 libfastcommon-1.0.7"; exit 1; }
./make.sh && ./make.sh install || { echo "编译安装 libfastcommon 失败"; exit 1; }
cp /usr/lib64/libfastcommon.so /usr/lib# 安装 trackercd "$PACKAGE_DIR" || { echo "无法进入目录 $PACKAGE_DIR"; exit 1; }
if [[ ! -f "fastdfs-5.05.tar.gz" ]]; thenecho "没有找到 FastDFS 安装包"exit 1
fitar -zxvf fastdfs-5.05.tar.gz || { echo "解压 FastDFS 安装包失败"; exit 1; }
cd fastdfs-5.05/ || { echo "无法进入目录 fastdfs-5.05"; exit 1; }
./make.sh && ./make.sh install || { echo "编译安装 FastDFS 失败"; exit 1; }
cp conf/* /etc/fdfs/# 配置和启动 trackercd /etc/fdfs/ || { echo "无法进入目录 /etc/fdfs/"; exit 1; }
sed -i "s#base_path *= */home/yuqing/fastdfs#base_path = ${fastdfs_home}#g" tracker.conf
sed -i "s#http.server_port *= *8080#http.server_port = 80#g" tracker.conf
mkdir -p "$fastdfs_home" || { echo "创建目录 $fastdfs_home 失败"; exit 1; }
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart || { echo "启动 tracker 失败"; exit 1; }# 配置和启动 storagecd /etc/fdfs/ || { echo "无法进入目录 /etc/fdfs/"; exit 1; }
sed -i "s#base_path *= */home/yuqing/fastdfs#base_path = ${fastdfs_home}#g" storage.conf
sed -i "s#store_path0 *= */home/yuqing/fastdfs#store_path0 = ${fastdfs_home}_storage#g" storage.conf
sed -i "s#tracker_server *= *192.168.209.121:22122#tracker_server = ${tracker_server_ip}:22122#g" storage.conf
sed -i "s#http.server_port *= *8888#http.server_port = 88#g" storage.conf
mkdir -p "${fastdfs_home}_storage" || { echo "创建目录 ${fastdfs_home}_storage 失败"; exit 1; }
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart || { echo "启动 storage 失败"; exit 1; }# 复制脚本到 /etc/init.d/sudo cp "$PACKAGE_DIR/$SCRIPT_NAME" /etc/init.d/ || { echo "复制脚本到 /etc/init.d/ 失败"; exit 1; }# 添加执行权限sudo chmod +x "/etc/init.d/${SCRIPT_NAME}" || { echo "添加执行权限失败"; exit 1; }# 创建 systemd 单元文件cat <<EOF | sudo tee "${SERVICE_DIR}${SERVICE_NAME}" >/dev/null
[Unit]
Description=FastDFS Startup Service
After=network.target[Service]
Type=oneshot
ExecStart=/etc/init.d/${SCRIPT_NAME} start
ExecStop=/etc/init.d/${SCRIPT_NAME} stop
ExecReload=/etc/init.d/${SCRIPT_NAME} restart
RemainAfterExit=yes[Install]
WantedBy=multi-user.target
EOF# 添加脚本为系统服务并设置开机自启动sudo systemctl daemon-reload || { echo "重新加载 systemd 失败"; exit 1; }
sudo systemctl enable "${SERVICE_NAME}" || { echo "设置开机自启动失败"; exit 1; }
sudo systemctl start "${SERVICE_NAME}" || { echo "启动服务失败"; exit 1; }# 完成提示信息echo "FastDFS已成功配置为系统服务并设置为开机自启动。"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器硬件构成与性能要点:CPU、内存、硬盘、RAID、网络接口卡等关键组件的基础知识总结

文章目录 服务器硬件基础知识CPU&#xff08;中央处理器&#xff09;内存&#xff08;RAM&#xff09;硬盘RAID&#xff08;磁盘阵列&#xff09;网络接口卡&#xff08;NIC&#xff09;电源散热器主板显卡光驱 服务器硬件基础知识 服务器是一种高性能计算机&#xff0c;用于在…

thinkphp6入门(21)-- 如何删除图片、文件

假设文件的位置在 /*** 删除文件* $file_name avatar/20240208/d71d108bc1086b498df5191f9f925db3.jpg*/ function deleteFile($file_name) {// 要删除的文件路径$file app()->getRootPath() . public/uploads/ . $file_name; $result [];if (is_file($file)) {if (unlin…

论文笔记:Large Language Models as Analogical Reasoners

iclr 2024 reviewer打分5558 1 intro 基于CoT prompt的大模型能够更好地解决复杂推理问题 然而传统CoT需要提供相关的例子作为指导&#xff0c;这就增加了人工标注的成本——>Zero-shot CoT避免了人工标注来引导推理 但是对于一些复杂的任务难以完成推理&#xff0c;例如c…

Android 14.0 添加自定义服务,并生成jar给第三方app调用

1.概述 在14.0系统ROM产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能 …

Type-c转USBA3.0芯片 USBA3.0转Type-c芯片(USB3.1GEN2 多路切换Switch芯片) VL162

VL162具有CC功能的USB Type-C数据开关USB 3.1 Gen2 (10Gbps) VL162 带CC功能的USB Type-C数据开关 支持最高10Gbps 2差分通道&#xff0c;2:1 MUX/DeMUX 兼容10Gbps USB3.1 Gen2 低功耗&#xff0c;6mW在设备模式下有效 高直流共模电压&#xff0c;支持2.0V 28针QFN 3.5 x 4.5m…

3d representation的一些基本概念

顶点&#xff08;Vertex&#xff09;&#xff1a;三维空间中的一个点&#xff0c;可以有多个属性&#xff0c;如位置坐标、颜色、纹理坐标和法线向量。它是构建三维几何形状的基本单元。 边&#xff08;Edge&#xff09;&#xff1a;连接两个顶点形成的直线段&#xff0c;它定…

【华为OD机试】芯片资源限制(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-芯片资源限制二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四…

人工智能数据分析Python常用库 04 matplotlib库

文章目录 一、matplotlib库的作用与环境配置1、环境配置示例2、改变绘图风格3、保存图片 二、绘制二维图形1、折线图&#xff08;1&#xff09;示例&#xff08;2&#xff09;调整线条颜色&#xff1a;&#xff08;3&#xff09;调整线条风格&#xff08;4&#xff09;调整线宽…

[蓝桥杯 2020 省 AB1] 解码(非常详细)

[蓝桥杯 2020 省 AB1] 解码 题目描述 小明有一串很长的英文字母&#xff0c;可能包含大写和小写。 在这串字母中&#xff0c;有很多连续的是重复的。小明想了一个办法将这串字母表达得更短&#xff1a;将连续的几个相同字母写成字母 出现次数的形式。 例如&#xff0c;连续…

【C语言】_文件内容操作:随机读写

目录 1. fseek 1.1 随机读文件 1.2 随机写文件 2. ftell 3. rewind 当以读方式打开一个存在且存有内容的文件时&#xff0c;文件指针会默认指向第一个元素。以在test4.txt文件中存储abcdef为例&#xff1a; int main() {//打开文件FILE* pf fopen("E:\\C_文件操作…

关系型数据库与非关系型数据库、Redis数据库

相比于其他的内存/缓存数据库&#xff0c;redis可以方便的实现持久化的功能&#xff08;保存至磁盘中&#xff09; 一、关系数据库与非关系型数据库 1.1 关系型数据库 一个结构化的数据库&#xff0c;创建在关系模型基础上一般面向于记录 SQL语句 (标准数据查询语言) 就是一种…

C语言中不常用到的一些函数

basename 功能&#xff1a;basename() 函数用于获取路径中的文件名部分&#xff0c;即去除路径中的目录部分。 函数原型&#xff1a; char *basename(char *path); 参数说明&#xff1a; path: 指向以null结尾的字符串&#xff0c;表示文件路径。 用法示例&#xff1a; …

LNMP环境:揭秘负载均衡与高可用性设计

lb1: 192.168.8.5 lb2: 192.168.8.6 web1:192.168.8.7 web2:192.168.8.8 php-fpm: 192.168.8.9 mysql: 192.168.8.10 nfs:192.168.8.11 分别插入镜像 8.5-8.8 分别安装nginx,并设置启动 8.9 安装php 8.10 安装mysql 先配置一台web服务器然后同步 设置网站根目录 cp -…

蛮力算法与凸包蛮力算法的深入探究

一、引言 在计算机科学中&#xff0c;算法是解决问题的核心。蛮力算法&#xff08;Brute Force Algorithm&#xff09;是众多算法中的一种&#xff0c;它采取最直接的方式来解决问题&#xff0c;不进行任何优化。尽管这种方法的效率可能不高&#xff0c;但在某些情况下&#x…

静态路由协议

路由器工作原理 当数据包进入路由器后&#xff0c;路由器基于数据包中的目标IP地址&#xff0c;查询本地的路由表&#xff1b;若表中存在记录则无条件按照记录转发&#xff0c;若没有记录将丢弃。 默认路由器仅存在直连网段路由&#xff0c;非直连网段被称为未知网段。 路由器…

深入解析二叉树:理论与实践的完美结合

二叉树作为数据结构的核心,不仅在算法设计中占有重要位置,而且在互联网公司的面试中频繁出现。通过本文的学习,你将能够深入理解二叉树的概念、掌握其实现方式,并能应用于实际问题解决。 深入解析二叉树:理论与实践的完美结合 1. 二叉树的基础知识定义二叉树节点2. 二叉树…

【00】【solidity最新教程】-简介

Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C&#xff0c;Python 和 Javascript 语言的影响&#xff0c;设计的目的是能在以太坊虚拟机&#xff08;EVM&#xff09;上运行。 Solidity 是静态类型语言&#xff0c;支持继承、库和复杂的用…

安卓手机APP开发的安卓工作台的简介

安卓手机APP开发的安卓工作台的简介 目录 概述 项目结构 Gradle的构建系统 构建变体 多APK支持 资源的废弃回收 管理依赖 调试与性能分析工具 内联调试 性能分析工具 堆转存

java -网络编程socket-聊天室-02

完整版代码 java -聊天室的代码: 用于存放聊天室的项目的代码和思路导图https://gitee.com/to-uphold-justice-for-others/java---code-for-chat-rooms.git 先引入线程的正统解释 线程&#xff08;Thread&#xff09;是程序执行流的最小单元。线程是操作系统分配CPU时间片的基…

【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)

题目 假设你在Uber工作。rides表包含了关于Uber用户在美国各地的行程信息。 编写一个查询&#xff0c;以获取纽约&#xff08;NY&#xff09;每位通勤者的平均通勤时间&#xff08;以分钟为单位&#xff09;&#xff0c;以及纽约所有通勤者的平均通勤时间&#xff08;以分钟为…