记录下自己常用的linux命令

这篇博客详细介绍了各种常用的Linux命令,包括查询网络端口、管理进程、查看JVM状态、文件操作以及服务器时间校准等。还涵盖了如何构建和管理Docker镜像、容器,以及数据库备份的操作流程,是Linux服务器管理和运维的实用指南。
摘要由CSDN通过智能技术生成

查询网络端口

netstat -nultp | grep PID

查询所有端口

ps -ef | grep PID

查询jar 程序

jps

杀死端口

kill -9 PID

查找文件位置

whereis FILENAME

查看所有后台任务

jobs

打开上次任务(若有多个则指定Job号)

fg JOBID

后台运行

bg

启动jar 程序

 nohup java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms2048m -Xmx2048m -Xmn640m -Xss256k -XX:SurvivorRatio=8 -XX:+UseG1GC ./xinsoft-gyhl.jar --spring.profiles.active=yanshi  >/dev/null 2>log &

-XX:MaxMetaspaceSize=128m 设置metaspace区域的最大值
-XX:MetaspaceSize=128m 到达128m发生fullGC 阈值
-Xms2048m 分配最小内存
-Xmx2048m 分配最大内存
-Xmn640m 新生代内存
-Xss256k 每个线程的堆栈大小
-XX:SurvivorRatio=8 设置新生代Eden区比例
-XX:+UseG1GC 使用的垃圾回收器 
-XX:NewRatio=4 设置年轻代比例

--spring.profiles.active=yanshi 指定配置文件
>/dev/null 输出到空文件
2>log 错误日志到log 文件  0 表示stdin标准输入;1 表示stdout标准输出;2 表示stderr标准错误。
我们可以理解为,左边是标准输出,好,现在标准输出直接输入到/dev/null中,而2>&1是将标准错误重定向到标准输出,所以当程序产生错误的时候,相当于错误流向左边,而左边依旧是输入到/dev/null中。

文件操作

chmod 777 FILENAME # 更改文件权限 部分配置文件需要为644不可执行 777则是最高权限
ll # 查看文件信息
ls # 查看文件列表
tail -f FILENAME # 从文件最后开始读取
cat FILENAME  # 读取整个文件
vi FILENAME  # 编辑文件 
vim FILENAME # 编辑文件
/查找内容 # 查找出指定内容位置
i # 输入 
d # 删除
:wq! # 强制保存
:q! # 不保存并推出
:set ff # 查看文件类型(unix 文件为可执行 dos 不可执行)
:set ff=unix # 设置文件类型为unix

服务器时间校准

ntpdate cn.pool.ntp.org

设置Linux 开机自启 (在rc.local 文件下加入自己要启动的文件)

vim /etc/rc.local

查看JVM使用情况

jstat -gc  PID 间隔时间 次数

导出内存快照

jmap-dump:format=b,file=YYMMddhhmm.dump PID

把系统(文件夹)打成tar 包

tar -cvpf /tmp/FILENAME.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .
--directory=/ # 所要打包的文件路径
--exclude=proc # 过滤掉不需要打包的文件夹
不要忘记最后一个点

将tar 包打成tar.gz

tar zcf FILENAME.tar.gz FILENAME.tar

shell 文件

#!/usr/bin/bash 
PROJECT_NAME=gyhl
containerName=$PROJECT_NAME
imagesName=$PROJECT_NAME
#network_name="$PROJECT_NAME_bridge"

function docker_install(){
	echo "检查Docker......"
	docker -v
    if [ $? -eq  0 ]; then
        echo "检查到Docker已安装!"
    else
    	  echo "安装docker环境..."
        curl -sSL https://get.daocloud.io/docker | sh
        echo "安装docker环境...安装完成! 开始启动docker"
               service docker start
    fi
    # 创建公用网络==bridge模式
    #docker network create share_network
    # 检查docker-compose 是否存在
  echo "检查docker-compose"
  docker-compose -v
    if [ $? -eq  0 ]; then
        echo "检查到docker-compose已安装"
    else
        cp -r ./docker-compose /usr/local/bin/
        chmod +x /usr/local/bin/docker-compose
        echo "docker-compose安装完成"
    fi

}

function check_start() {
    existImage=`docker inspect --format '{{.Id}}' java:office`
    if [ "${existImage}" == "" ]; then
        echo "无镜像!正在创建镜像..."
        # 不存在就创建
        docker load -i ./resource/redis.tar
        docker load -i ./resource/nginx.tar
        docker load -i ./resource/rabbitmq.tar
        docker load -i ./resource/influxdb.tar
        docker load -i ./resource/vsftpd.tar
        docker load -i ./resource/mysql.tar
        docker load -i ./resource/java.tar
        echo "创建镜像成功!!"
    fi

#    filterName=`docker network ls | grep ${network_name} | awk '{ print $2 }'`
#    if [ "${filterName}" == "" ]; then
#        # 不存在就创建
#        echo "开始创建 ${network_name} ..."
#        docker network create ${network_name}
#        echo "创建 ${network_name} 成功!!"
#    fi

    existContainer=`docker inspect --format '{{.State.Running}}' ${containerName}`
    if [ "${existContainer}" == "true" ]; then
        docker stop ${containerName}
        echo "容器:${containerName}已停止"
        docker rm ${containerName}
        echo "容器:${containerName}已删除"
        docker rmi ${imagesName}
        echo "镜像:${containerName}已删除"
    fi
}

function buildJar(){
    #文件夹不存在则创建
#    if [ ! -d "/dbback/" ];then
#      echo "创建备份文件夹"
#      mkdir /dbback
#    else
#      echo "备份文件夹已经存在"
#    fi
    echo "mysql 权限降级"
    chmod 644 ./mysql/conf/my.cnf  
    cp ./dbback.sh ./dbback 
    chmod 777 ./dbback/dbback.sh
 
    echo "正在构建gyhl镜像"
    # 其实这个构建指令是可以直接写到compose的那个启动文件中的
    docker build -f ./dockerfile -t ${containerName} .
    echo "镜像构建完成"
    echo "重启容器"
    docker-compose down
    echo "正在创建并启动容器"
    docker-compose -f ./docker-compose.yml up -d
}

docker_install

check_start

buildJar

#!/bin/bash

echo "正在备份数据库"
docker exec -i mysql mysqldump -t -uroot -pxinsoft411 > "/data/xinsoft"`date +%s`".sql" --default-character-set=utf8 xinsoft
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值