LINUX

一、脚本使用

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值