一、脚本使用
1.1 常用脚本
1.1.1 解压
1.解压.tar.gz文件
tar -zxvf filename.tar.gz
1.1.2 复制
cp -r /来源目录 /目标目录
1.1.3 传输文件
scp -rp /source_dir user@host:/dest_dir
1.1.4 执行远程脚本
1、在服务器上执行本地脚本
ssh user@remote_host "bash -s" < ~/scripts/deploy.sh
2、在服务器上执行命令
ssh username@remote_host "bash /remote/path/local_script.sh"
1.1.5 创建用户脚本
#!/bin/bash
# 检查root权限
if [ "$(id -u)" -ne 0 ]; then
echo "请使用sudo或root用户执行此脚本"
exit 1
fi
# 创建数据目录(如果不存在)
DATA_DIR="/data/iftpdev"
if [ ! -d "$DATA_DIR" ]; then
mkdir -p "$DATA_DIR" || {
echo "创建目录 $DATA_DIR 失败"
exit 1
}
echo "数据目录 $DATA_DIR 创建成功"
fi
# 创建用户组(如果不存在)
if ! grep -q "^iftpdev:" /etc/group; then
groupadd iftpdev || {
echo "创建组iftpdev失败"
exit 1
}
echo "用户组iftpdev创建成功"
fi
# 创建用户(如果不存在)
if ! id iftpdev &>/dev/null; then
useradd -m -d "$DATA_DIR" -s /bin/bash -g iftpdev iftpdev || {
echo "创建用户iftpdev失败"
exit 1
}
echo "用户iftpdev创建成功"
# 非交互式密码设置
echo "iftpdev:iftpdev" | chpasswd || {
echo "密码设置失败"
exit 1
}
echo "初始密码已设置为iftpdev"
fi
# 配置环境变量
USER_HOME="$DATA_DIR"
BASHRC="${USER_HOME}/.bashrc"
# 检查Java目录是否存在
if [ ! -d "${USER_HOME}/jdk-21.0.6" ]; then
echo "警告:${USER_HOME}/jdk-21.0.6 目录不存在,请先安装JDK"
fi
# 追加环境配置
{
echo -e "\n# Java环境配置"
echo "export JAVA_HOME=${USER_HOME}/jdk-21.0.6"
echo 'export PATH=$JAVA_HOME/bin:$PATH'
} >> "$BASHRC"
# 修正文件权限
chown iftpdev:iftpdev "$BASHRC"
# 切换用户验证配置
echo -e "\n正在验证配置..."
su - iftpdev -c "
source ~/.bashrc
echo -e '\n环境变量验证:'
echo \"JAVA_HOME=\$JAVA_HOME\"
echo \"PATH=\$PATH\"
java -version 2>&1 || echo 'Java未正确安装'
"
1.1.6 修改目录所有权
chown -R [组名:用户名] [目录名]
1.1.7 给某个目录赋权限
chmod +rxw [目录名称]
1.1.8 創建用戶配置文件出錯
cp /etc/skel/.bash* ~/
source ~/.bash_profile
改完後$前面就正常了
1.1.9 某個用戶进程限制
sudo vi /etc/security/limits.conf
[用戶名] soft nproc 65535
[用戶名] hard nproc 65535
二、配置
2.1 ssh免密配置
假设有a,b两台机器,在每台机器上执行
①、检查是否已有密钥
ls -l ~/.ssh/
如果不存在会提示没有这个目录或文件,存在会显示对应文件


②、生成密钥对
ssh-keygen -t ed25519
连续三个回车即可

③将a公钥复制到服务器b,就是实现a免密登录b【user:对应用户名,remote_host:对应ip地址】
方法一:自动复制
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_host
#存在不行,看看目標是否有權限
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
方法二:手动复制
1、a机器上查看公钥,复制输出内容(类似 ssh-ed25519 AAAAC3... your_email@example.com)。
cat ~/.ssh/id_ed25519.pub
2、b机器上,编辑 authorized_keys,your_public_key对应上面复制的公钥
mkdir -p ~/.ssh
echo "your_public_key" >> ~/.ssh/authorized_keys
3、确保权限正确:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
7万+

被折叠的 条评论
为什么被折叠?



