Wayde's Blog

知识源于积累


  • 首页

  • 关于

  • 分类

  • 标签

  • 个人收藏

  • 归档

  • 搜索

Linux ssh命令

发表于 2018-03-05 | 分类于 Linux

指定端口和私钥连接

$ ssh username@remote_host -p port -i ~/.ssh/private.key

远程执行命令

$ ssh pandll-hk ls -l

挂载远程文件系统

$ sudo apt-get install sshfs

$ sshfs -o idmap=user pandll-hk:/home/wayde ~/Remote

该命令就将远程主机user用户的主目录挂载到本地主目录下的 Remote文件夹

利用X11 Forwarding远程执行GUI程序

原理

Linux下执行一个GUI程序通常需要两个部分来协调完成,X server与X client。

X server是专门负责显示用户界面的,它管理你的显示器,键盘以及鼠标,通常你看到的桌面系统即是由它在背后驱动的。

X client则负责程序的逻辑,如果需要使用用户界面,则通过给X server发送请求来完成。

通常情况下,X server与X client都运行在同一台机器上,例如我们在Window上运行任何GUI程序都是这样的。

但因为X系统当初设计成是通过socket在X server与X client之间通信的,所以它们也可以运行在不同的机器上。
X11 Forwarding就提供了一个方法,在远程机器上执行X client程序(如Firefox),但是在本地机器上显示(即运行X server)。

步骤

  1. 配置X client

    1
    2
    3
    $ cat /etc/ssh/sshd_config
    X11Forwarding yes
    X11DisplayOffset 10
  2. 配置X server

    1
    2
    3
    $ cat /etc/ssh/ssh_config
    Host *
    ForwardX11 yes
  3. 远程连接

    $ ssh -aX pandll-hk

将本机公钥写入远程服务器

$ cat ~/.ssh/id_rsa.pub | ssh user@host 'cat >> .ssh/authorized_keys'

参考资料:
Linux 下 SSH 命令实例指南
Ubuntu下ssh连接显示图形界面

KVM 配置文件详解

发表于 2018-03-03 | 分类于 KVM
  1. cpu设置

    1
    <vcpu placement='static'>8</vcpu>
  2. 内存设置

    1
    2
    <memory unit='KiB'>4094304</memory>
    <currentMemory unit='KiB'>4094304</currentMemory>

参考资料:
KVM 介绍(2):CPU 和内存虚拟化
KVM之十一:调整cpu和内存
绑定KVM虚拟机的vcpu与物理CPU
kvm-virsh使用

Ubuntu 查看配置

发表于 2018-03-03 | 分类于 Ubuntu
  1. 内存 free -m

  2. 系统版本 cat /proc/version

  3. 查看系统版本 lsb_release -a

    LSB Version: core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
    Distributor ID: Ubuntu
    Description: Ubuntu 16.04.2 LTS
    Release: 16.04
    Codename: xenial

  4. 32位or64位 sudo uname --m

    sudo uname –s 显示内核名字
    sudo uname –r 显示内核版本
    sudo uname –n 显示网络主机名
    sudo uname –p 显示cpu

  5. 查看操作系统版本 cat /etc/issue

  6. 查看系统类型,其中lsb表示(Linux Standard Base) lsb_release -cs

参考资料:
Ubuntu – 下如何查看CPU信息, 包括位数和多核信息

虚拟服务器

发表于 2018-03-03 | 分类于 KVM

虚拟专用服务器(Virtual private server)

维基百科如此介绍:

虚拟专用服务器(Virtual Private Server,缩写为VPS),是将一台服务器分区成多个虚拟专享服务器的服务。

实现VPS的技术分为容器技术和虚拟机技术 ,在容器或虚拟机中,每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。

VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS为用户提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。 IDC资源租用,由VPS提供商提供。不同VPS提供商所使用的硬件VPS软件的差异,及销售策略的不同,VPS的使用体验也有较大差异。尤其是VPS提供商超卖,导致实体服务器超负荷时,VPS性能将受到极大影响。相对来说,容器技术比虚拟机技术硬件使用效率更高,更易于超卖,所以一般来说容器VPS的价格都高于虚拟机VPS的价格。 这些VPS主机以最大化的效率共享硬件、软件许可证以及管理资源。每个VPS主机都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立CPU资源、独立执行程序和独立系统配置等。VPS主机用户可在服务器上自行安装程序,单独重启主机。

虚拟机网络连接

虚拟机网络连接常见的有3种方式:

  1. NAT 网络

    即内部地址转换,相当于从物理网卡外接了一个虚拟的路由,然后所有虚拟机都连接到该“路由器”上,虚拟机可以借助这个路由器访问到外面的网络,但外面的网络却无法访问,因为虚拟机的地址只是路由器上唯一的,出了路由器就不再唯一了。

  2. 桥接网络

    也叫物理设备共享,相当于虚拟了一个和服务网卡一样的网卡,这个虚拟网卡和物理网卡是平行的关系,并且虚拟机共用物理网卡额资源。这样,虚拟机能够接入外部网络,不受物理机的限制了。

  3. Host-Only 网络

    与 NAT 类似,但是比 NAT 更封闭,只有物理机能够访问该虚拟机,其他虚拟机也不能访问。

Ubuntu 修改hostname导致sudo无法使用

发表于 2018-03-03 | 分类于 Ubuntu

修改/etc/hostname时,需要同步修改/etc/hosts => 127.0.1.1对应名称(如有),否则sudo命令无法使用

解决方法:

指定host切换root

sudo -h localhost su -

KVM常用操作

发表于 2018-03-03 | 分类于 KVM
  1. 查看虚拟机列表

    $ virsh list --all

  2. 编辑虚拟机配置文件

    $ virsh edit vm1

    可以通过mac地址联合arp -a查找虚拟机ip

    1
    2
    3
    4
    5
    6
    <interface type='bridge'>
    <mac address='52:54:00:60:e9:32'/>
    <source bridge='br0'/>
    <model type='rtl8139'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
  3. 启动虚拟机

    $ virsh start vm1

  4. 查看虚拟机信息

    $ virsh dominfo vm1

  5. 查看虚拟机cpu信息

    $ virsh vcpuinfo vm1

  6. 关闭虚拟机

    $ virsh shutdown vm1

    KVM虚拟机默认是无法用virsh shutdown|reboot的,如果要想使用该命令,则必须在kvm虚拟机上安装acpid acpid-sysvinit两个包,启动acpid服务,并且设置随机启动

    $ virsh destroy vm1

    强制关机

  7. 重启虚拟机

    $ virsh reboot vm1

  8. 删除虚拟机

    $ virsh undefine vm1

  9. 挂起/恢复虚拟机

    $ virsh suspend vm1

    $ virsh resume vm1

  10. 设置虚拟机自动启动

    $ virsh autostart vm1

  11. 关闭虚拟机自动启动

    $ virsh autostart --disable vm1

  12. 登陆虚拟机控制台

    $ virsh console vm1

    只对指定了console的虚机才管用

    退出: ctrl + ]

  13. 将iso镜像挂载到cdrom光驱(即时生效)

    $ virsh attach-disk vm1 iso_file_path hdc --type cdrom --mode readonly

  14. 增加新的网卡

    $ virsh attach-interface vm1 --type bridge --source br1 --model virtio

  15. 查看支持的cpu类型

    $ kvm -cpu \?

  16. 虚拟机批量管理脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #! /bin/sh
    # /etc/init.d/recall
    #

    # Some things that run always
    touch /var/lock/recall

    # Carry out specific functions when asked to by the system
    case "$1" in
    start)
    shift

    waits=0
    # /var/run/libvirt/libvirt-sock
    sockf=/var/run/libvirt/libvirt-sock
    while ! test -e $sockf; do
    waits=$((waits+1))
    echo "Waiting for $sockf" $waits $@
    [ $waits -ge 60 ] && break
    sleep 1
    done

    # set default list
    [ $# -eq 0 ] && set -- vm1 vm2 vm3
    echo "List:" $# [$@]

    while [ $# -ge 1 ]; do
    ( ! virsh list | grep "$1" > /dev/null ) && echo 'Starting' $# [$1] && virsh start $1 && sleep 1
    shift
    done
    virsh list --all
    echo "Started.\n"
    ;;

    stop)
    shift
    while [ $# -ge 1 ]; do
    ( virsh list | grep "$1" > /dev/null ) && echo 'Stopping' $# [$1] && virsh destroy $1 && sleep 1
    shift
    done
    virsh list --all
    echo "Stopped.\n"
    ;;

    *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;

    esac

    exit 0

    ​

参考资料:
kvm 使用入门详解
KVM之五:KVM日常管理常用命令
kvm 四种简单的网络模型
KVM-网络配置

Ubuntu 输出声音

发表于 2018-03-03 | 分类于 Ubuntu

参考资料:
Ubuntu 14.04 没有声音解决

KVM虚拟机安装windows 10

发表于 2018-03-03 | 分类于 KVM
  1. qemu-img create -f raw /opt/kvm.raw 10G

  2. qemu-img info /opt/kvm.raw

  3. 创建虚拟机

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    virt-install \
    --virt-type kvm \
    --name windows10 \
    --ram 8192 \
    --cdrom=/uni/windows10/cn_windows_10_enterprise_version__dvd_9057083.iso \
    --boot cdrom \
    --cpu core2duo \
    --network bridge=br0,model='e1000' \
    --graphics vnc,listen=0.0.0.0 \
    --disk path=/opt/kvm.raw,bus='ide' \
    --noautoconsole \
    --os-type=windows
  4. ubuntu16.04 利用Remmina 远程桌面客户端连接10.17.1.10继续安装

  5. 安装完成后设置开机启动

    virsh autostart windows10

    常用命令请查看KVM常用操作

参考资料:
CentOS7.2上用KVM安装虚拟机windows10踩过的坑

Linux 文件操作常用方法

发表于 2018-03-01 | 分类于 Linux
  1. 查找并显示文件信息

    find ./ -size +1G -exec ls -lh {} \;
    or
    find ./ -size +1G | xargs -i ls -lh {}

  2. 查找并移动文件

    find ./ -name *.iso -size +1G | xargs -I {} mv {} /data/OS/

  3. 查找修改时间超过3天的文件并删除

    find ./ -maxdepth 1 -mtime +3 -exec rm -rf {} \;

  4. 查找非指定字符结尾的文件并删除

    find ./ -name '*[!.tar.gz]' -exec rm -rf {} \;

  5. 删除文件时排除某个文件

    1
    2
    rm -rf  `ls | egrep -v tmp`
    rm -rf `ls | egrep -v '(aa.txt|bb.txt|cc)'`

    ​

PostgreSQL 删除重导数据库

发表于 2018-02-03 | 分类于 PostgreSQL
  1. 强制kill数据库活动连接

    1
    dbname=# select pg_terminate_backend(pid) from pg_stat_activity where datname = 'dbname' and pid <>pg_backend_pid();
  2. 删除数据库

    1
    dbname=# drop database dbname;
  3. 新建数据库

    1
    dbname=# create database dbname;
  4. 授权给用户

    1
    dbname=# grant all privileges on database dbname to dbuser;
  5. shell命令行删除数据库

    $ dropdb -h localhost -p 5432 -U postgres dbname

  6. shell命令行导入数据库

    $ psql -h host -U postgres -d dbname < database_export.sql

1…789…14
Wayde

Wayde

140 日志
14 分类
112 标签
GitHub StackOverflow Instagram
© 2012–2022 Wayde
粤ICP备2020135844号