linux服务器日常操作纪录集锦1. liunx连接管理工具作为小白入门时使用的是Xshell、Xftp突然有天被公司告知没有版权不允许使用。自此需求其他软件MobaXterm最终解决了问题据说是免费的没有考证。Windows用久了就觉得可视化界面更方便主要是命令不熟吧毕竟高端的操作往往只需要一行命令。 MobaXterm官网地址[https://mobaxterm.mobatek.net/](https://mobaxterm.mobatek.net/) 初始化界面如下2. 基础命令行文件夹导航$cd./目标路径 $cd./目标路径/子目录 例如cd./usercd./user/local单文件夹创建$mkdir文件夹名 例如mkdirhome多文件夹创建多文件夹创建,不同文件夹之间空格$mkdir文件夹名1 文件夹名1 例如mkdirhome home2文件夹授权Chmod777文件删除$rm-f文件名 例如rm-ftext文件夹删除$rm-rf文件夹名称 例如rm-fhome文件查找$find/folder/folder1/folder2/-namefileName.ext 例如:find/usr/local/redis/-nameredis.conf文件夹查找whereisnacos查找进程ps-ef|grepnacos.tar.gz压缩包解压命令tar-zxvfgzname.tar.gz .zip压缩包解压命令需要安装unzipunzipzipname.zip查看文件夹占用空间dush* 查看占用空间最大的前十文件夹du-s*|sort-nr|head查看根目录占用空间df-hl查看历史命令history3.Nacos运行脚本Nocas启动服务shstartup.sh-mstandalone 或 后台运行nohupshstartup.sh-mstandalone关闭服务shshutdown.sh 查看运行状态ps-ef|grepnacos4.磁盘扩容查看当前分区情况fdisk-l新建分区fdisk/dev/vdb 在fdisk的交互模式中依次输入 n //创建新分区 p //创建主分区1//默认分区编号1按照提示可以输入其他分区编号2,3,4等回车//默认起始扇区位置。回车//默认结束扇区位置。如果是把全部空间分给这个分区继续回车。如果只分部分可输入例如100G w //保存 查看新建分区的组织结构 lsblk 格式化mkfs-text4 /dev/vdb1 创建挂载磁盘分区文件夹mkdir/var/lib/docker 挂载磁盘分区临时挂载如果服务器重启将失效mount/dev/vdb2 /var/lib/docker 查看磁盘分区的UUID blkid 将UUID绑定到fstab,服务器重启会自动挂载echoUUIDb4004490-e5a9-42be-b87c-82e2be5c75f9 /var/lib/docker ext4 defaults 0 0/etc/fstab5.pgsql操作// psql 登录psql-U 用户名-h ip-p 端口-d 数据库名 psql-U postgres-h127.0.0.1-p5432-d em// 删除模式(登录psql)DROPSCHEMA模式名CASCADE;// 授权-- 授予用户user_name对模式schema_name的使用权限GRANTUSAGEONSCHEMAschema_nameTOuser_name;-- 授予用户user_name对模式schema_name中所有表的SELECT权限GRANTSELECTONALLTABLESINSCHEMAschema_nameTOuser_name;-- 授予用户user_name对模式schema_name中所有序列的使用权限GRANTALLPRIVILEGESONALLSEQUENCESINSCHEMAschema_nameTOuser_name;-- 授予用户user_name对模式schema_name中所有函数的执行权限GRANTEXECUTEONALLFUNCTIONSINSCHEMAschema_nameTOuser_name;// 数据库备份命令pg_dump-U 用户名-h ip-p 端口 数据库名备份文件名称 pg_dump-U postgres-h192.168.0.1-p5432emem_backup_file_20230613// 恢复命令./psql-U 用户名-h ip-p 端口-d pre_gstanze-f 备份文件名称./psql-U postgres-h192.168.0.1-p5432-d em-f em_backup_file_20230613--备份schemapg_dump-U 用户名-h ip-p 端口-d pre_gstanze-f-d 数据库名-n 模式名备份文件名称 pg_dump-U postgres-h192.168.0.1-p5432-d em-n stdbem_stdb_backup_file_20230613--恢复schema./psql em_stdb_backup_file_20230613-- 自定义导出格式pg_dump-U 用户名-h ip-p 端口-d 数据库名称-n 模式名--format custom --blobs --encoding UTF8 --verbose --file 备份文件路径pg_dump-U postgres-h127.0.0.1-p5432-d dbname-ndata--format custom --blobs --encoding UTF8 --verbose --file /home/data.backup-- 自定义格式导入pg_restore--dbnamepostgresql://用户名:密码ip:端口/数据名 --role postgres --verbose 备份文件路径 日志路径 21pg_restore--dbnamepostgresql://postgres:postgres127.0.0.1:5432/dbname --role postgres --verbose /home/data.backup /var/lib/pgsql/db.log 21// 修改数据库的账户密码psql-U postgresALTERUSERpostgresWITHPASSWORD ‘new_password’;// pgsql 导入sql备份# 登录到 PostgreSQLpsql-U your_username-d postgres# 创建新的数据库CREATEDATABASEnew_database;# 连接到新数据库\c new_database# 执行 SQL 备份文件\i/path/to/backup.sql6.Postgresql 无法重启的问题,日志如下LOG: database system is shut down LOG: database system was interruptedwhileinrecovery at2023-10-2011:10:55 CST HINT: This probably means that some data is corrupted and you will have to use the last backupforrecovery. LOG: database system was not properly shut down;automatic recoveryinprogress FATAL: could notopendirectorypg_tblspc/memory/PG_11_201809051:Not a directory LOG: startup process(PID11314)exited withexitcode1LOG: aborting startup due to startup process failure LOG: database system is shut down LOG: database system was interruptedwhileinrecovery at2023-10-2011:11:13 CST HINT: This probably means that some data is corrupted and you will have to use the last backupforrecovery. LOG: database system was not properly shut down;automatic recoveryinprogress FATAL: could notopendirectorypg_tblspc/memory/PG_11_201809051:Not a directory LOG: startup process(PID13397)exited withexitcode1LOG: aborting startup due to startup process failure LOG: database system is shut down解决方法:删除以下目录中所有文件/var/lib/pgsql/11/data/pg_tblspc## pg目录说明bin目录 /usr/pgsql-11/bin data目录 /var/lib/pgsql/11/data log目录 /var/lib/pgsql/11/data 查看端口监听,例如检查默认端口5432 $ systemctl status postgresql-11 $netstat-ntlp|grep5432启动命令 $ systemctl start postgresql-11 停止命令 $ systemctl stop postgresql-11 重启命令 $ systemctl restart postgresql-117.jar包运行命令不生成nohup.log文件nohupjava-jarxxx.jar/dev/null21/dev/null是一个虚拟的空设备任何信息只进不出想象物理中的『黑洞』任何输出信息被重定向到该设备后将会石沉大海/dev/null 表示将标准输出信息重定向到『黑洞』意味着不保存信息21表示将标准错误重定向到标准输出后台运行java服务不生成nohup.log文件实例#!/bin/shJAR_NAMEjava-service.jartpid$(ps-ef|grep-vgrep|egrep$JAR_NAME|awk{printf $2 })echo$tpidif[$tpid];thenechosever is running , stop firstkill-9$tpidelseechoready to startfisleep3rm-ftpidnohupjava-server-Xms2048m-XX:MetaspaceSize128M-Dfile.encodingUTF-8-Dspring.config.locationapplication.properties-jar$JAR_NAME/dev/null21echo$!tpidechostarting server...jar 运行控制台查看日志java-server-Xms2048m-XX:MetaspaceSize128M-XX:MaxMetaspaceSize2048M-Dfile.encodingUTF-8-Dspring.config.locationapplication.properties-jarjava-service.jar8.更新jar包里的相关文件后运行报nable to open nested entry ********.jar’错误原因需要更新的文件拖拽到jar包目录下之后winrar会自动压缩 解决手动拖拽文件到jar包中不压缩直接存储文件加上*.文件后缀名例*.jar1、winrar打开jar包并拖拽需要更新文件到指定目录2、更新之后查看文件大小如mysql-connector-java-8.0.11.jar大小1.9M2,036,609 字节则正常可运行9. vmware安装liunx虚拟机并设置固定ip1、在vmware编辑 -- 虚拟网络编辑器选择NAT模式并设置子网ip参考主机ip2、点击NAT设置设置网关最后一位为2543、修改liunx的ip、网关、子网掩码等,进入liunx系统编辑网卡配置文件命令为vi/etc/sysconfig/network-scripts/ifcfg-ens33修改BOOTPROTOstatic 网络分配方式必须修改为静态ONBOOTyes 系统启动是否激活网卡默认no添加IPADDR192.168.102.6PREFIX24GATEWAY192.168.102.254IPV6_PRIVACYNONETMASK255.255.255.0修改完成Esc退出输入:wq退出保存。4、resolv.conf文件新增nameservernameserver 192.168.102.2545、reboot重启服务器服务器时间查看并修改// 时间查看 timedatectl status // 修改系统时间sudodate--set2024-08-06 11:03:0010.jar启动脚本#!/bin/bash# 基础配置请根据你的项目修改# 服务端口SERVER_PORT9200# jar 包绝对路径JAR_PATH/dataJAR_NAMEtest.jarJAR_FILE${JAR_PATH}/${JAR_NAME}# 应用名称用于进程识别APP_NAMEtest# JVM 参数JVM_OPTS-server -Xms128m -Xmx512m# Nacos 配置NACOS_ADDRem.nacos.server:8848NACOS_NAMESPACEemergency# 日志目录自动创建LOG_DIR/gsafety/logs/gassafety-authLOG_FILE${LOG_DIR}/nohup.log# PID 文件路径用于精准启停PID_FILE${JAR_PATH}/${APP_NAME}.pid# # SpringBoot 启动参数SPRING_OPTS\ -Dserver.port${SERVER_PORT}\ -Dspring.cloud.nacos.discovery.server-addr${NACOS_ADDR}\ -Dspring.cloud.nacos.config.server-addr${NACOS_ADDR}\ -Dspring.cloud.nacos.config.namespace${NACOS_NAMESPACE}\ -Dspring.cloud.nacos.discovery.namespace${NACOS_NAMESPACE}\ -Dspring.main.allow-circular-referencestrue \ -DpostConstruct.refreshCache1# 远程调试参数DEBUG_OPTS-agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005# 创建日志目录mkdir-p${LOG_DIR}# 获取进程 PIDget_pid(){PID$(ps-ef|grepjava|grep${JAR_FILE}|grep-vgrep|awk{print $2})echo${PID}}# 启动服务start(){PID$(get_pid)if[-n${PID}];thenechoecho【错误】${APP_NAME}已经启动PID${PID}echoexit1fiechoecho正在启动${APP_NAME}...echo端口${SERVER_PORT}echoJVM${JVM_OPTS}echo# 后台启动并输出日志nohupjava${JVM_OPTS}${SPRING_OPTS}-jar${JAR_FILE}${LOG_FILE}21# 写入 PID 文件echo$!${PID_FILE}sleep2PID$(get_pid)if[-n${PID}];thenecho【成功】${APP_NAME}启动完成PID${PID}echo日志路径${LOG_FILE}elseecho【失败】${APP_NAME}启动失败请检查日志fi}# 调试启动端口 5005start_debug(){PID$(get_pid)if[-n${PID}];thenechoecho【错误】${APP_NAME}已经启动PID${PID}echoexit1fiechoecho正在以调试模式启动${APP_NAME}...echo调试端口5005echonohupjava${JVM_OPTS}${DEBUG_OPTS}${SPRING_OPTS}-jar${JAR_FILE}${LOG_FILE}21echo$!${PID_FILE}sleep2PID$(get_pid)if[-n${PID}];thenecho【成功】调试模式启动完成PID${PID}elseecho【失败】启动失败fi}# 停止服务优雅停机 强制兜底stop(){PID$(get_pid)if[-z${PID}];thenechoecho【提示】${APP_NAME}未运行echorm-f${PID_FILE}returnfiechoecho正在停止${APP_NAME}PID${PID}...echo# 优雅停机kill${PID}/dev/null21sleep3# 兜底强制停止PID$(get_pid)if[-n${PID}];thenecho优雅停机失败执行强制停止...kill-9${PID}/dev/null21sleep1firm-f${PID_FILE}echo【成功】${APP_NAME}已停止}# 查看状态status(){PID$(get_pid)if[-n${PID}];thenechoecho【运行中】${APP_NAME}PID${PID}echoelseechoecho【已停止】${APP_NAME}echofi}# 实时查看日志log(){tail-f${LOG_FILE}}# 错误日志errlog(){tail-f${LOG_DIR}/error.log}# 重启restart(){stopsleep1start}# 使用说明usage(){echoecho${APP_NAME}服务管理脚本echo 用法$0{start|stop|restart|status|debug|log|errlog}echo}# 执行命令case$1instart)start;;stop)stop;;restart)restart;;status)status;;debug)start_debug;;log)log;;errlog)errlog;;*)usageexit1;;esacexit0