本文目录导读:

基于SSHFS的远程目录挂载脚本
#!/bin/bash
# SSHFS远程目录挂载脚本
# 使用前需要安装: sudo apt-get install sshfs
# 配置参数
REMOTE_USER="your_username"
REMOTE_HOST="192.168.1.100"
REMOTE_PATH="/home/your_username/remote_folder"
LOCAL_MOUNT="/mnt/remote"
SSH_PORT=22
SSH_KEY="~/.ssh/id_rsa" # 可选:使用SSH密钥
# 创建挂载点
mkdir -p "$LOCAL_MOUNT"
# 挂载命令
if [ -f "$SSH_KEY" ]; then
# 使用密钥认证
sshfs -o allow_other,default_permissions,port=$SSH_PORT,IdentityFile=$SSH_KEY \
$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH \
$LOCAL_MOUNT
else
# 使用密码认证(需要安装sshpass)
# read -sp "请输入SSH密码: " SSH_PASS
# export SSHPASS=$SSH_PASS
# sshfs -o allow_other,default_permissions,password_stdin \
# $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH \
# $LOCAL_MOUNT
# 或手动输入密码
sshfs $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH $LOCAL_MOUNT
fi
# 检查挂载状态
if mountpoint -q "$LOCAL_MOUNT"; then
echo "✅ 远程目录已成功挂载到 $LOCAL_MOUNT"
echo "📊 挂载信息:"
df -h "$LOCAL_MOUNT"
else
echo "❌ 挂载失败,请检查配置"
exit 1
fi
NFS远程挂载脚本
#!/bin/bash
# NFS远程目录挂载脚本
# 服务端需要配置NFS服务:sudo apt-get install nfs-kernel-server
# 配置参数
NFS_SERVER="192.168.1.100"
NFS_PATH="/export/data"
LOCAL_MOUNT="/mnt/nfs_remote"
MOUNT_OPTIONS="rw,hard,intr,vers=4"
# 创建挂载点
mkdir -p "$LOCAL_MOUNT"
# 检查NFS是否可用
echo "检查NFS服务器连接..."
if ! rpcinfo -s $NFS_SERVER &>/dev/null 2>&1; then
echo "⚠️ 无法连接到NFS服务器 $NFS_SERVER"
exit 1
fi
# 执行挂载
mount -t nfs -o $MOUNT_OPTIONS \
$NFS_SERVER:$NFS_PATH $LOCAL_MOUNT
# 验证挂载
if mountpoint -q "$LOCAL_MOUNT"; then
echo "✅ NFS目录已成功挂载"
mount | grep "$LOCAL_MOUNT"
else
echo "❌ 挂载失败,检查:/var/log/syslog"
exit 1
fi
Samba/CIFS挂载脚本
#!/bin/bash
# Samba/CIFS远程目录挂载脚本
# 需要安装:sudo apt-get install cifs-utils
# 配置参数
SAMBA_SERVER="192.168.1.100"
SAMBA_SHARE="shared_folder"
SAMBA_USER="windows_user"
SAMBA_DOMAIN="WORKGROUP" # 可选
LOCAL_MOUNT="/mnt/samba_remote"
PASSWORD_FILE="/etc/samba/auth.creds" # 密码文件
# 创建密码文件(首次使用时)
if [ ! -f "$PASSWORD_FILE" ]; then
read -sp "请输入Samba密码: " SAMBA_PASS
echo
echo "username=$SAMBA_USER" | sudo tee $PASSWORD_FILE
echo "password=$SAMBA_PASS" | sudo tee -a $PASSWORD_FILE
echo "domain=$SAMBA_DOMAIN" | sudo tee -a $PASSWORD_FILE
sudo chmod 600 $PASSWORD_FILE
fi
# 创建挂载点
sudo mkdir -p "$LOCAL_MOUNT"
# 执行挂载
sudo mount -t cifs \
-o credentials=$PASSWORD_FILE,iocharset=utf8,file_mode=0644,dir_mode=0755 \
//$SAMBA_SERVER/$SAMBA_SHARE $LOCAL_MOUNT
# 验证
if [ $? -eq 0 ]; then
echo "✅ Samba目录已成功挂载到 $LOCAL_MOUNT"
echo "📊 挂载信息:"
mount | grep cifs
else
echo "❌ 挂载失败"
exit 1
fi
完整的智能挂载管理脚本
#!/bin/bash
# 智能远程目录挂载管理脚本
# 支持多种协议,自动检测可用性
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# 配置
declare -A REMOTE_CONFIG=(
["SSHFS_HOST"]="192.168.1.100"
["SSHFS_USER"]="user1"
["SSHFS_REMOTE"]="/home/user1/data"
["NFS_SERVER"]="192.168.1.101"
["NFS_EXPORT"]="/export"
["SAMBA_SERVER"]="192.168.1.102"
["SAMBA_SHARE"]="shared"
["SAMBA_USER"]="user2"
["LOCAL_BASE"]="/mnt"
)
# 日志函数
log() {
local level=$1
local msg=$2
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
case $level in
"INFO") echo -e "${GREEN}[${timestamp}] ${msg}${NC}" ;;
"WARN") echo -e "${YELLOW}[${timestamp}] WARNING: ${msg}${NC}" ;;
"ERROR") echo -e "${RED}[${timestamp}] ERROR: ${msg}${NC}" ;;
"DEBUG") echo "[${timestamp}] DEBUG: ${msg}" ;;
esac
}
# 检查依赖
check_dependencies() {
local deps=("sshfs" "mount" "df" "grep")
for dep in "${deps[@]}"; do
if ! command -v $dep &>/dev/null; then
log "ERROR" "缺少依赖: $dep"
log "INFO" "请安装: sudo apt-get install $dep"
return 1
fi
done
}
# SSHFS挂载
mount_sshfs() {
local label="sshfs_${REMOTE_CONFIG[SSHFS_HOST]}"
local local_path="${REMOTE_CONFIG[LOCAL_BASE]}/$label"
mkdir -p "$local_path"
log "INFO" "尝试SSHFS挂载: ${REMOTE_CONFIG[SSHFS_USER]}@${REMOTE_CONFIG[SSHFS_HOST]}"
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 \
${REMOTE_CONFIG[SSHFS_USER]}@${REMOTE_CONFIG[SSHFS_HOST]}:${REMOTE_CONFIG[SSHFS_REMOTE]} \
"$local_path" 2>/dev/null
if mountpoint -q "$local_path"; then
log "INFO" "✅ SSHFS挂载成功: $local_path"
return 0
else
log "WARN" "SSHFS挂载失败"
return 1
fi
}
# NFS挂载
mount_nfs() {
local label="nfs_${REMOTE_CONFIG[NFS_SERVER]}"
local local_path="${REMOTE_CONFIG[LOCAL_BASE]}/$label"
mkdir -p "$local_path"
log "INFO" "尝试NFS挂载: ${REMOTE_CONFIG[NFS_SERVER]}:${REMOTE_CONFIG[NFS_EXPORT]}"
mount -t nfs -o hard,intr,rsize=32768,wsize=32768 \
${REMOTE_CONFIG[NFS_SERVER]}:${REMOTE_CONFIG[NFS_EXPORT]} \
"$local_path" 2>/dev/null
if mountpoint -q "$local_path"; then
log "INFO" "✅ NFS挂载成功: $local_path"
return 0
else
log "WARN" "NFS挂载失败"
return 1
fi
}
# Samba挂载
mount_samba() {
local label="samba_${REMOTE_CONFIG[SAMBA_SERVER]}"
local local_path="${REMOTE_CONFIG[LOCAL_BASE]}/$label"
mkdir -p "$local_path"
read -sp "请输入Samba密码: " samba_pass
echo
log "INFO" "尝试Samba挂载: //${REMOTE_CONFIG[SAMBA_SERVER]}/${REMOTE_CONFIG[SAMBA_SHARE]}"
mount -t cifs -o username=${REMOTE_CONFIG[SAMBA_USER]},password=$samba_pass,iocharset=utf8 \
//${REMOTE_CONFIG[SAMBA_SERVER]}/${REMOTE_CONFIG[SAMBA_SHARE]} \
"$local_path" 2>/dev/null
if mountpoint -q "$local_path"; then
log "INFO" "✅ Samba挂载成功: $local_path"
return 0
else
log "WARN" "Samba挂载失败"
return 1
fi
}
# 主函数
main() {
echo "=================================="
echo " 远程目录挂载工具 v1.0"
echo "=================================="
# 检查依赖
check_dependencies || exit 1
# 选择挂载方式
echo "请选择挂载方式:"
echo "1) SSHFS (SSH文件系统)"
echo "2) NFS (网络文件系统)"
echo "3) Samba/CIFS"
echo "4) 全部尝试"
read -p "选择 [1-4]: " choice
case $choice in
1) mount_sshfs ;;
2) mount_nfs ;;
3) mount_samba ;;
4)
mount_sshfs
mount_nfs
mount_samba
;;
*) log "ERROR" "无效选择" ;;
esac
# 显示挂载状态
echo -e "\n📊 当前挂载状态:"
mount | grep -E "(sshfs|nfs|cifs)" | while read line; do
echo -e "${GREEN}$line${NC}"
done
}
# 执行主函数
main "$@"
使用说明
-
保存脚本:将脚本保存为
mount_remote.sh -
添加执行权限:
chmod +x mount_remote.sh
-
安装依赖:
# SSHFS sudo apt-get install sshfs # NFS sudo apt-get install nfs-common # Samba sudo apt-get install cifs-utils
-
配置参数:根据实际情况修改脚本中的配置
-
执行脚本:
./mount_remote.sh
自动挂载(/etc/fstab)
到 /etc/fstab 实现开机自动挂载:
# SSHFS
sshfs#user@host:/remote/path /mnt/local fuse defaults,allow_other,_netdev 0 0
# NFS
server:/export/path /mnt/local nfs defaults,_netdev 0 0
# Samba
//server/share /mnt/local cifs username=user,password=pass,_netdev 0 0
这些脚本提供了灵活的远程目录挂载解决方案,您可以根据实际需求选择使用。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播