Lehman-Blog - Linux
type: channel
link: https://blog.lehman.top/tag/Linux/
items: Linux挂载磁盘详解及实操步骤
items: BAT 脚本&SH脚本整理 | 定时任务
items: 搭建FTP服务器

Linux挂载磁盘详解及实操步骤
type: item
date: 2024-03-19T10:23:00+08:00
description: 前言最近需要对Linux进行磁盘挂载，由于好久没有对操作过了，有些许生疏，故写篇博客记录下简要说明在Linux系统中，挂载磁盘（或分区）是将硬盘（或分区）连接到文件系统的过程，使其可以被访问和使用。文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式，可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等确认硬盘[scode type="blue"]在Linux中挂载磁盘，首先需要确认新硬盘是否被系统识别。可以通过lsblk或fdisk -l命令查看[/scode]lsblk fdisk -l [scode type="red"]上述我们要将200G的数据盘进行挂载，假设新硬盘被系统识别为/dev/vdb，后述步骤按照/dev/vdb进行操作[/scode]创建文件系统[scode type="blue"]创建一个新的文件系统[/scode]sudo mkfs.ext4 /dev/vdb 创建目录运行下述命令，创建一个目录，用于挂载数据盘sudo mkdir /data 挂载运行下述命令，将数据盘vdb挂载到新创建的目录sudo mount /dev/vdb /data 检查挂载状态运行下述命令，确认数据盘已经成功挂载df -h [scode type="red"]此时应该能够在输出中看到 /dev/vdb 已经挂载到 /data 目录[/scode]配置自动挂载（可选）为了让硬盘在系统重启后依然保持挂载状态，需要将其添加到/etc/fstab文件中，编辑/etc/fstab文件：/dev/vdb /data ext4 defaults 0 0 重新加载重新加载/etc/fstab以应用更改sudo mount -a 卸载卸载/data：sudo umount /data 补充说明如果需要将文件系统重新挂载到另外一个目录 例如：/newData，需要保证没有任何程序或进程正在使用/data目录下的文件，然后依次进行操作：卸载/data创建/newData目录重新挂载文件系统到/newData检查挂载状态配置自动挂载（可选）重新加载删除/data目录（可选）

BAT 脚本&SH脚本整理 | 定时任务
type: item
date: 2020-10-09T14:30:00+08:00
description: 前言bat 脚本和 sh 脚本是分别用于 Windows 和 类 Unix 系统（如 Linux、macOS） 的批处理/脚本文件，用于自动化执行一系列命令[scode type="green"]BAT 与 SH 脚本命令对比表[/scode]功能Windows .bat / .cmd 脚本Linux/macOS .sh 脚本（Bash）输出信息echo Hello Worldecho "Hello World"注释:: 注释内容 或 rem 注释内容# 注释内容变量赋值set name=张三name="张三"引用变量%name%$name 或 ${name}执行命令并获取输出不直接支持（需重定向到文件） output=`ls` 或 output=$(ls)创建目录mkdir C:\tempmkdir /tmp/temp删除文件del file.txtrm file.txt删除目录（含内容）rmdir /s /q folderrm -rf folder复制文件copy file1.txt file2.txtcp file1.txt file2.txt移动/重命名文件move old.txt new.txtmv old.txt new.txt判断文件是否存在if exist file.txt echo 存在if [ -f file.txt ]; then echo "存在"; fi判断目录是否存在if exist C:\temp\nul echo 存在if [ -d /tmp ]; then echo "存在"; fi延迟/睡眠timeout /t 5sleep 5（单位：秒）调用另一个脚本call script2.bat. script2.sh 或 source script2.sh 或 ./script2.sh跳转标签goto label:label使用函数：function label()label退出脚本exit 或 exit /b 0exit 0设置可执行权限不需要chmod +x script.sh执行脚本script.bat 或双击./script.sh 或 bash script.sh当前脚本路径%~dp0$(dirname "$0") 或 $(realpath "$(dirname "$0")")参数引用%0（脚本名）%1, %2...（参数）%*（所有参数）$0（脚本名）$1, $2...（参数）$@ 或 $*（所有参数）字符串连接set combined=%str1%%str2%combined="$str1$str2"字符串长度无内置命令（需 PowerShell 或复杂逻辑）${#var}获取子字符串无直接支持${var:0:5}（从索引0取5个字符）环境变量引用%PATH%$PATH换行符\r\n（CRLF）\n（LF）注意事项路径分隔符：Windows：\Linux/macOS：/大小写敏感性：.bat：不区分大小写（命令和变量）.sh：区分大小写脚本首行（Shebang）：.sh 脚本通常以 #!/bin/bash 开头，指定解释器。.bat 脚本无此概念。错误处理：.bat：使用 %errorlevel% 获取上一条命令返回码。.sh：使用 $? 获取上一条命令退出状态。我们编写跨平台脚本时，建议使用 PowerShell（.ps1）或 Python，它们在 Windows、Linux 和 macOS 上均有良好支持.bat脚本集合[button color="info" icon="glyphicon glyphicon-download-alt" url="https://disk.windseeker.link/share/de4f7fad259343dfbdd8a0b20768df80?pwd=382635" type=""]追风网盘 / 提取码：382635[/button].sh脚本集合[button color="info" icon="glyphicon glyphicon-download-alt" url="https://disk.windseeker.link/share/7b28aa4fc51f4f54ae3fd52b095b369a?pwd=534969" type=""]追风网盘 / 提取码：534969[/button]补充扩展（定时任务）[collapse status="true" title="Windows "]我的电脑》》》控制面板》》》计划任务任务计划程序库》》》创建基本任务填写任务信息》》》执行间隔》》》执行脚本》》》是否登录运行[/collapse][collapse status="true" title="Linux "]在Linux系统中，创…

搭建FTP服务器
type: item
date: 2020-08-24T16:27:00+08:00
description: 简介FTP 是文件传输协议（File Transfer Protocol）的缩写，它是一种用于在网络上进行文件传输的标准网络协议。FTP 协议允许用户在本地计算机和远程服务器之间进行文件传输，可以上传、下载、删除、重命名文件等操作FTP 协议有两种模式：主动模式（Active Mode）和被动模式（Passive Mode）。在主动模式下，客户端主动建立连接并发送命令到服务器；在被动模式下，服务器主动建立连接并发送命令到客户端使用 FTP 协议进行文件传输时，需要使用 FTP 客户端软件，如 FileZilla、Xftp 等。这些软件可以连接到 FTP 服务器，并使用 FTP 协议进行文件传输Window安装网上基于Window的FTP服务器搭建教程提别多，单同时可能会造成的问题也提别多，建议跟着视频进行操作Linux安装可以选择安装如vsftpd、proftpd、PureFTPd等FTP服务软件，下述以PureFTPd为例 在Debian/Ubuntu上安装PureFTPd：sudo apt update sudo apt install pure-ftpd 在CentOS/RHEL上安装PureFTPd：sudo yum install epel-release sudo yum install pure-ftpd 创建FTP用户并指定目录权限创建用户，使用useradd命令创建一个名为ftpuser的新用户-d /var/www/html: 指定该用户的主目录为/var/www/html-s /usr/sbin/nologin: 指定该用户不能通过SSH登录，仅用于FTP访问sudo useradd ftpuser -d /var/www/html -s /usr/sbin/nologin 设置密码，为ftpuser设置密码sudo passwd ftpuser 指定目录权限，将/var/www/html目录及其所有子文件和子目录的所有者更改为ftpusersudo chown -R ftpuser:ftpuser /var/www/html 配置PureFTPd启用UNIX认证，确保PureFTPd使用系统用户进行认证echo "yes" | sudo tee /etc/pure-ftpd/conf/UnixAuthentication 限制用户访问特定目录，确保用户只能访问其主目录echo "yes" | sudo tee /etc/pure-ftpd/conf/ChrootEveryone 设置被动端口范围以确保FTP连接能够在防火墙后正常工作echo "30000 35000" | sudo tee /etc/pure-ftpd/conf/PassivePortRange 服务器有公共IP地址，设置该IP以确保FTP连接正常echo "外部IP地址" | sudo tee /etc/pure-ftpd/conf/ForcePassiveIP 应用所有配置更改并重启PureFTPd服务sudo systemctl restart pure-ftpd 连接测试通过FileZilla或Xftp软件进行连接测试