系统级别

给普通用户赋予sudo权限

  • 切换到 root 用户,运行 visudo 命令;
  • 找到 root ALL=(ALL) ALL,在下面添加一行 xxx ALL=(ALL) ALL,其中 xxx 是要加入的用户名称。

调整交换区

  1. 查看架构

    1
    2
    3
    4
    5
    #安装
    yum install virt-what

    #查看架构
    virt-what

    现在市面上的vps虚拟技术有许多种,比如Openvz、Xen、VMware vSphere、Hyper-V、KVM及Xen的HVM与PV等,在Xen中pv是半虚拟化,hvm是全虚拟化,pv只能用于linux内核的系统,hvm可以虚拟所有常见操作系统(linux+windows),理论效率比pv略低,另外hvm需要cpu虚拟化指令支持,pv无此要求,而Openvz是一个类似于linux-VServer的操作系级全虚拟化解决方案。

  2. 查看内存

    1
    2
    3
    4
    5
    6
    7
    #查看内存
    free -m
    #查看文件系统
    df -h

    #查看分区详情
    swapon -s
  3. 增加虚拟内存(交换区swap)

    swap有交换区和交换文件两种,选择一种,下面增加交换文件

    1. 增加swap交换文件

      1
      2
      3
      4
      # if表示infile,of表示outfile
      # bs=1024代表增加的模块大小
      # count=4096000代表4096000个模块,也就cd 是4G空间
      dd if=/dev/zero of=/var/swap bs=1024 count=4096000
    2. 制作为swap格式文件

      1
      2
      3
      # mkswap /var/swap
      mkswap -f /var/swap

    3. 用swapon命令把这个文件分区挂载swap分区

      1
      2
      3
      4
      # 修改权限
      chmod 600 /var/swap
      swapon /var/swap

  4. 交换区永久生效

    1
    2
    3
    4
    5
    vim /etc/fstab
    # 在文件末尾(最后一行)加上 这样就算重启系统,swap分区还是有值。
    #-----------------------------------------
    /var/swap swap swap defaults 0 0
    #-----------------------------------------
  5. 不使用后删除交换区

    1. 停止swap

      1
      /sbin/swapoff /var/swap
    2. 删除分区文件

      1
      rm -rf /var/swap
    3. 删除自动挂载

      1
      2
      vim /etc/fstab 
      # 删除 /home/swap swap swap default 0 0

磁盘

删除磁盘

打开终端,以root用户身份登录。
输入fdisk -l命令,查看磁盘分区情况。
找到要删除的分区,记录下分区的设备名,如/dev/sda
输入fdisk /dev/sda命令,进入fdisk分区工具。
输入d命令,选择要删除的分区。
输入w命令,保存并退出fdisk
输入partprobe命令,更新分区表。
输入lsblk命令,确认分区已被删除。

防火墙

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
# 开放端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口
firewall-cmd --reload # 配置立即生效

# 查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

# 关闭防火墙 如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估
systemctl stop firewalld.service

# 查看防火墙状态
firewall-cmd --state

# 查看监听的端口 PS:centos7默认没有 netstat 命令,需要安装 net-tools 工具,`yum install -y net-tools`*
netstat -lnpt
netstat -lnpt | grep 5672

# 查看进程的详细信息
ps 6832

#终止进程
kill

端口重定向
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 80
iptables -t nat -A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to-ports 80

shell

切换用户

先安装 expect

1
yum install -y expect

创建脚本 1.sh

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/expect
# 默认12s
#set timeout 1
# -c后面是执行的脚本 send 后是密码,\r必须有
spawn su uucs -c "/opt/uucs/start.sh"
expect "Password: "
send "uucs\r"
interact
expect eof
exit

执行脚本时不能指定 sh 只能通过 ./1.sh 的方式执行

找到当前脚本绝对路径

1
2
3
4
5
BASE_DIR=`cd $(dirname $0) ; pwd`
# dirname $0 定位脚本当前目录
# cd 进入
# pwd 当前路径
# `......` 计算

杀进程

ps -ef 是linux 里查看所有进程的命令。
grep httpd 所有含有关键字”httpd”的进程
awk ‘{print $2}’ 输出第二列的PID
xargs 是将获取到的多个PID标准输入转为命令行参数。
kill -9 杀掉xargs获取到的对应的PID
如果能准确知道进程名称,可以直接用killall 和pkill ,如果是模糊匹配进程名称,就用最后一个
ps -ef | grep 进程名称 | awk ‘{print $2}’ | xargs kill -9
ps -ef | grep httpd | grep -v grep | awk '{print $2}' | xargs kill -9

1
2
3
ps -ef | grep  emergency-job-gz-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}' | xargs kill -9

nohup java -jar emergency-job-gz-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod >/dev/null 2>&1 &