zoukankan      html  css  js  c++  java
  • 实验室 Linux 集群的管理常用命令

        实验室有一个Linux集群,本文做一下记录。

    SSH相关命令

    通过SSH登录集群中的其他机器上的操作系统(或虚拟机中的操作系统)。操作系统之间已经设置免密码登录。

    1. 无选项参数运行 SSH

    通常使用 SSH 的方式就是不加任何选项参数,仅仅输入 "ssh"。下面是示例:

    $ ssh 192.168.0.103

    注意这样是在 ssh 进程端口号22, 目标主机用户和当前用户同名的情况下。

    2. 指定登陆用户

    默认的,ssh 会尝试用当前用户作为用户名来连接。在上面的示例命令中,ssh 会尝试用用户名叫 pungki 的用户身份来登入服务器,这是因为用户 pungki 正在客户机上使用 ssh 客户端软件。

    假如目标主机上没有叫 pungki 的用户呢?这时你就必须提供一个目标主机上存在的用户名。从一开始就要指定用户名的,可以使用 -l 选项参数。

    $ ssh -l leni 192.168.0.103

    我们也可以这样输入:

    $ ssh leni@192.168.0.0103

    3. 指定端口

    SSH 默认使用的端口号是 22。大多现代的 Linux 系统 22 端口都是开放的。如果你运行 ssh 程序而没有指定端口号,它直接就是通过 22 端口发送请求的。

    一些系统管理员会改变 SSH 的默认端口号。让我们试试,现在端口号是 1234.要连上那主机,就要使用 **-p* 选项,后面在加上 SSH 端口号。

    $ ssh 192.168.0.103 -p 1234

    要改变端口号,我们需要修改 /etc/ssh/ssh_config 文件,找到此行:

    Port 22

    把它换成其他的端口号,比如上面示例的 1234 端口,然后重启 SSH 服务。

    4. 退出

    exit
    多输入几遍,直到退出

    文件传输scp

    例如:
    scp wxf@10.1.1.11:/mnt/nfs01/datasets/spark/vertexdata.txt ~/Desktop

    在linux下一般用scp这个命令来通过ssh传输文件。


    1、从服务器上下载文件
    scp username@servername:/path/filename /var/www/local_dir(本地目录)

    例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)

    2、上传本地文件到服务器
    scp /path/filename username@servername:/path

    例如scp /var/www/test.php root@192.168.0.101:/var/www/ 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中

    3、从服务器下载整个目录
    scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)

    例如:scp -r root@192.168.0.101:/var/www/test /var/www/

    4、上传目录到服务器
    scp -r local_dir username@servername:remote_dir
    例如:scp -r test root@192.168.0.101:/var/www/ 把当前目录下的test目录上传到服务器的/var/www/ 目录

    注:目标服务器要开启写入权限。

    ssh免密码登录

    ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

    有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。

    1.在A机下生成公钥/私钥对。
    [chenlb@A ~]$ ssh-keygen -t rsa -P ''

    -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
    它在/home/chenlb下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。

    2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。
    [chenlb@A ~]$ scp .ssh/id_rsa.pub chenlb@192.168.1.181:/home/chenlb/id_rsa.pub
    chenlb@192.168.1.181's password:
    id_rsa.pub 100% 223 0.2KB/s 00:00

    由于还没有免密码登录的,所以要输入密码。

    3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。
    [chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
    [chenlb@B ~]$ chmod 600 .ssh/authorized_keys

    authorized_keys的权限要是600。

    4.A机登录B机。
    [chenlb@A ~]$ ssh 192.168.1.181
    The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
    RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.1.181' (RSA) to the list of known hosts.
    Last login: Thu Jul 3 09:53:18 2008 from chenlb
    [chenlb@B ~]$

    第一次登录是时要你输入yes。

    现在A机可以无密码登录B机了。

    小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

    集群ssh免密码

    1.安装ssh. sudo apt-get install ssh. 安装完成后会在~目录(当前用户主目录,即这里的/home/xuhui)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件)。如果没有这个文件,自己新建即可(mkdir .ssh).

    2.进入.ssh目录下面,在每台机器上执行:ssh-keygen -t rsa 之后一路回车,产生密钥;

    3。完成第二步后会产生两个文件:

    id-rsa #私钥
    id-rsa.pub #公钥
    4.在第一台机器的目录.ssh下执行命令,cat id-rsa.pub >> authorized_keys;此后.ssh下面会出现authorized_keys文件。

    5.然后将第一台机器的.ssh目录下面的authorized_keys文件拷贝到第二台计算机的.ssh目录下,如:scp authorized_keys xuhui@cloud002:~/.ssh/

    6.再转到第二台机器的.ssh目录下,会发现刚刚传输过来的文件-authorized_keys,然后执行命令,将第二台计算机的公钥也加进来,如:cat id-rsa.pub >> authorized_keys.

    7.将第二台计算机新生成的authorized_keys传输第三台计算机,将第三台计算机的公钥-id-rsa.pub添加到从第二台计算机传过来的authorized_keys里面。

    8.依次类推,直至集群中的最后一台计算机。

    9.在集群的最后一台计算机执行完添加后,生成的authorized_keys文件就包含集群中所有计算机的公钥,如果以后还有机器加进到集群中来,可以直接添加到文件-authorized_keys。最后,将最后生成的authorized_keys复制到集群中的每一台计算机的.ssh目录下,覆盖掉之前的authorized_keys。

    10.完沉第九步后,就可以在集群中任意一台计算机上,免密码ssh登录到其他计算了。

    Web Server配置和重启

    1、查看占用某端口的进程PID

    fuser -n tcp 8900

    kill -9 <Pid>

    或者 从容停止Nginx: kill -QUIT <Pid>

    快速停止Nginx: kill -TERM <Pid>

    2、查看某个进程的PID

    ps aux |grep nginx

    3、重新加载配置文件

    nginx -s reload

    4、如果nginx访问文件的权限有问题会产生403 Forbidden,如果文件根本不存在会产生404 Not Found

    chmod -R 755 floder_name 

    然后添加对应的目录到/path指定的目录。

    VNC相关命令

    一般使用VNC Viewer登录主实体服务器

    分时操作系统允许多个用户进程同时存在,每个用户对应一个用户根进程,此进程与用户交互。用终端登录某个用户,执行vncserver命令,vncserver进程就可以为这个用户创建一个桌面,为每个桌面分配一个 id 号,用vncviewer登录地址 ip:id 就可以登录到用户的桌面。

    启动命令

    #vncserver

    图形界面

    启动vncserver后,修改/root/.vnc/xstartup,把最后一行 twm& 改成 gnome-session& 或者 kde&(据说KDE在目前的VNC Viewer上的表现不太稳定)

    开机自启动

    配置VNC自动启动。在/etc/sysconfig 下有一个vncservers 的配置文件。修改成如下: VNCSERVERS="1:root" 意思就是使用ip:1即可使用root的用户桌面。 而在屏幕上不显示。 使用chkconfig --level 3 vncserver 即可在启动时加载vncserver

    VNC的启动/停止/重启

    关闭vnc命令
    #service vncserver start/stop/restart 关闭具体的vncserver命令:vncserver -kill :1 vncserver -kill :2

    设置密码

    #vncpasswd

    客户端登陆

    在vnc客户端中输入:服务器端IP:1 或 服务器端IP:2

  • 相关阅读:
    C#中类与结构体的区别
    计算机快捷键
    ArcSDE简单介绍
    SQLServer存储过程
    (ArcGIS Server10.0)Windows无法启动ArcGIS Server Object Manager服务(位于本地计算机上)。错误1067
    安装arcgis10.0出现localhost上运行的许可管理器版本不正确
    地理空间数据获取(二)
    地理空间数据免费获取(一)
    angular实现对百度天气api跨域请求
    angular实现跨域
  • 原文地址:https://www.cnblogs.com/xinchrome/p/5014892.html
Copyright © 2011-2022 走看看