首页 文章 精选 留言 我的

精选列表

搜索[linux],共10000篇文章
优秀的个人博客,低调大师

linux下nginx启动、重启、关闭

方式一:传统方法 一、启动 cd usr/local/nginx/sbin ./nginx 二、重启 更改配置重启nginx kill -HUP 主进程号或进程号文件路径 或者使用 cd /usr/local/nginx/sbin ./nginx -s reload 判断配置文件是否正确 nginx -t -c /usr/local/nginx/conf/nginx.conf 或者 cd /usr/local/nginx/sbin ./nginx -t 三、关闭 查询nginx主进程号 ps -ef | grep nginx 从容停止 kill -QUIT 主进程号 快速停止 kill -TERM 主进程号 强制停止 kill -9 nginx 若nginx.conf配置了pid文件路径,如果没有,则在logs目录下 kill -信号类型 '/usr/local/nginx/logs/nginx.pid' 方式二:通过配置/etc/init.d/nginx文件来控制 这里使用的是编写shell脚本的方式来处理 vi /etc/init.d/nginx (输入下面的代码) #!/bin/bash #nginxStartupscriptfortheNginxHTTPServer #itisv.0.0.2version. #chkconfig:-8515 #description:Nginxisahigh-performancewebandproxyserver. #Ithasalotoffeatures,butit'snotforeveryone. #processname:nginx #pidfile:/var/run/nginx.pid #config:/usr/local/nginx/conf/nginx.conf nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/var/run/nginx.pid RETVAL=0 prog="nginx" #Sourcefunctionlibrary. ./etc/rc.d/init.d/functions #Sourcenetworkingconfiguration. ./etc/sysconfig/network #Checkthatnetworkingisup. [${NETWORKING}="no"]&&exit0 [-x$nginxd]||exit0 #Startnginxdaemonsfunctions. start(){ if[-e$nginx_pid];then echo"nginxalreadyrunning...." exit1 fi echo-n$"Starting$prog:" daemon$nginxd-c${nginx_config} RETVAL=$? echo [$RETVAL=0]&&touch/var/lock/subsys/nginx return$RETVAL } #Stopnginxdaemonsfunctions. stop(){ echo-n$"Stopping$prog:" killproc$nginxd RETVAL=$? echo [$RETVAL=0]&&rm-f/var/lock/subsys/nginx/var/run/nginx.pid } #reloadnginxservicefunctions. reload(){ echo-n$"Reloading$prog:" #kill-HUP`cat${nginx_pid}` killproc$nginxd-HUP RETVAL=$? echo } #Seehowwewerecalled. case"$1"in start) start ;; stop) stop ;; reload) reload ;; restart) stop start ;; status) status$prog RETVAL=$? ;; *) echo$"Usage:$prog{start|stop|restart|reload|status|help}" exit1 esac exit$RETVAL :wq 保存并退出 设置文件的访问权限 chmod a+x /etc/init.d/nginx (a+x ==> all user can execute 所有用户可执行) 这样在控制台就很容易的操作nginx了:查看Nginx当前状态、启动Nginx、停止Nginx、重启Nginx… 同样的修改了nginx的配置文件nginx.conf,也可以使用上面的命令重新加载新的配置文件并运行, 配置开机自启动: 方式一:在/etc/rc.local中配置 可以将此命令加入到rc.local文件中,这样开机的时候nginx就默认启动了 vi /etc/rc.local 加入一行 /etc/init.d/nginx start 保存并退出,下次重启会生效。 方式二:将nginx配置成自启动的服务 1.添加至服务管理列表,并让其开机自动启动 [root@nginx ~]# chkconfig --add nginx [root@nginx ~]# chkconfig nginx on [root@nginx ~]# chkconfig nginx --list nginx 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 2、nginx启动、停止、无间断服务重启 [root@example ~]# service nginx start [root@example ~]# service nginx stop [root@example ~]# service nginx reload 3.查看一下端口 [root@nginx ~]# netstat -ntlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3889/nginx 对于其他服务也同样适用,比如Mysql,php-fpm等等 10.测试一下

优秀的个人博客,低调大师

Linux命令硬链接、软链接

1.mount命令使用 2.fstab文件的使用 作业:把/opt挂载到/tmp/opt下,并且添加到fstab中 mkdir /tmp/opt mount –B /opt /tmp/opt /opt /tmp/opt none bind 0 0 本节内容: 1.硬链接 硬链接是用索引节点来进行链接的实际链接,硬链接允许一个文件拥有多个有效路径,删除其中一个链接并不会影响其本身,只有最后一个链接删除时才会删除本身节点。 硬链接有两个限制: a)不允许给目录创建链接 b)不能在不同分区之间创建硬链接 创建硬链接使用的命令:ln 基本用法 : ln 目标文件 链接名称,比如我们有一个hard01的文件,创建一个硬链接hard_link,可以使用命令 ln hard hard_link 可以看到这两个文件的inode是一样的,都是1260478,同时我们看到第三列的值变成了2。删除硬链接后会变成1: 2.软链接 软链接也叫符号链接,是一个包含了另一个文件路径的文件,可以指向任意文件或目录,也可以跨不同的文件系统,和windows下的快捷方式非常类似。删除软链接不会删除所链接的文件,删除源文件,软链接会断链。 创建一个软链接, touch file1 ln –s file1 file-slink 删除源文件后,可以发现链接文件颜色发生了变化 用ll –li可以看到软链接的inode是不一样的 作业:为文件file1创建一个硬链接和软链接

优秀的个人博客,低调大师

Linux 下 rsyslog 系统日志转发

一、rsyslog 介绍 ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,据官网介绍,现在可以处理100万条信息。 特性:1.多线程 2.支持加密协议:ssl,tls,relp 3.mysql、oracle、postgreSQL 4.等等.. 二、实践部署() 2.1 环境图 2.2.rsyslog server上部署操作 安装rsyslog 程序(rsyslog默认已经在各发行版安装,如果系统中没有的话,可以用yum 进行安装,如下:) [root@opm ~]# yum install rsyslog -y 编辑rsyslog配置文件,路径 /etc/rsyslog.conf,修改前最好先备份一份,修改后的文件内容如下 [root@opmlog]#grep-v"^#"/etc/rsyslog.conf|grep-v"^$" $ModLoadimuxsock#providessupportforlocalsystemlogging(e.g.vialoggercommand) $ModLoadimjournal#providesaccesstothesystemdjournal $ModLoadimmark#provides--MARK--messagecapability $ModLoadimudp $UDPServerRun514 $ModLoadimtcp $InputTCPServerRun514 $WorkDirectory/var/lib/rsyslog $AllowedSendertcp,192.168.30.0/24 $ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat $templateRemote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" :fromhost-ip,!isequal,"127.0.0.1"?Remote $IncludeConfig/etc/rsyslog.d/*.conf $OmitLocalLoggingon $IMJournalStateFileimjournal.state *.info;mail.none;authpriv.none;cron.none/data/log/messages authpriv.*/var/log/secure mail.*-/var/log/maillog cron.*/var/log/cron *.emerg:omusrmsg:* uucp,news.crit/var/log/spooler local7.*/var/log/boot.log a.$AllowedSender tcp, 192.168.30.0/24 允许 30.0网段内的主机以tcp协议来传输 b.$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" 定义模板,接受日志文件路径,区分了不同主机的日志 c.:fromhost-ip, !isequal, "127.0.0.1" ?Remote 过滤server 本机的日志。 d.$InputTCPServerRun 514 开启tcp,tcp和udp 可以共存的 创建日志目录,尽量选择系统内比较大的区域创建,因为考虑到要存放很多服务器的日志文件。 [root@opm ~]# mkdir -pv /data/log 修改完成无误后,重启rsyslog服务,并查看监听端口,514 是否是tcp协议 [root@opm ~]# systemctl restart rsyslog [root@opm ~]# netstat -aulntp | grep rsyslog tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 20228/rsyslogd tcp6 0 0 :::514 :::* LISTEN 20228/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 20228/rsyslogd udp6 0 0 :::514 :::* 20228/rsyslogd 2.3 客户端上操作: node1 上进行配置 打开配置文件,老样子,先备份下在进行修改 /etc/rsyslog.conf,修改完记得要重启程序 [root@node1~]#grep-v"^$"/etc/rsyslog.conf|grep-v"^#" $ModLoadimuxsock#providessupportforlocalsystemlogging(e.g.vialoggercommand) $ModLoadimjournal#providesaccesstothesystemdjournal $WorkDirectory/var/lib/rsyslog $ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat $templatemyFormat,"%timestamp%%fromhost-ip%%msg%\n" $ActionFileDefaultTemplatemyFormat $IncludeConfig/etc/rsyslog.d/*.conf $OmitLocalLoggingon $IMJournalStateFileimjournal.state *.info;mail.none;authpriv.none;cron.none@@192.168.30.55 authpriv.*/var/log/secure mail.*-/var/log/maillog cron.*/var/log/cron *.emerg:omusrmsg:* uucp,news.crit/var/log/spooler local7.*/var/log/boot.log ceph1 上进行配置,重启rsyslog程序 打开配置文件/etc/rsyslog.conf [root@ceph1~]#grep-v"^$"/etc/rsyslog.conf|grep-v"^#" $ModLoadimuxsock#providessupportforlocalsystemlogging(e.g.vialoggercommand) $ModLoadimjournal#providesaccesstothesystemdjournal $WorkDirectory/var/lib/rsyslog $ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat $IncludeConfig/etc/rsyslog.d/*.conf $OmitLocalLoggingon $IMJournalStateFileimjournal.state *.info;mail.none;authpriv.none;cron.none@@192.168.30.55 authpriv.*/var/log/secure mail.*-/var/log/maillog cron.*/var/log/cron *.emerg:omusrmsg:* uucp,news.crit/var/log/spooler local7.*/var/log/boot.log $templatemyFormat,"%timestamp%%fromhost-ip%%msg%\n" $ActionFileDefaultTemplatemyFormat 最后重启客户端上的rsyslog程序 2.4 验证,在服务器上进到 /data/log 目录下,进行查看,会发现以下类似的文件结构 [root@opm ~]# tree /data/log/ /data/log/ ├── 192.168.30.56 │ └── 192.168.30.56_2016-05-05.log ├── 192.168.30.57 │ └── 192.168.30.57_2016-05-05.log └── messages 2 directories, 3 files messages:server 端的系统日志 文件夹192.168.30.56: node1 客户端的日志 文件夹192.168.30.57: ceph1 客户端的日志 我们这里只查看node1 的系统日志吧。server 上进行操作 [root@opm ~]# tail -f /data/log/192.168.30.56/192.168.30.56_2016-05-05.log May 5 20:50:45 node1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="9296" x-info="http://www.rsyslog.com"] exiting on signal 15. May 5 20:50:45 node1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="9334" x-info="http://www.rsyslog.com"] start May 5 20:50:45 node1 systemd: Stopping System Logging Service... May 5 20:50:45 node1 systemd: Starting System Logging Service... May 5 20:50:45 node1 systemd: Started System Logging Service. 这里还可以在node1上在命令行里输入 logger “this is test ” 发送消息,server上进行查看下 [root@opm ~]# tail -1f /data/log/192.168.30.56/192.168.30.56_2016-05-05.log May 5 20:52:46 node1 root: this is test 2.5.如果验证失败的话,先检查selinux 是否关闭。后将udp 514 端口和tcp 514端口允许30网段访问即可,或者关闭iptables 服务。另外说明centos7上 默认防火墙是firewalld。该操作在每台机器上进行。 三、收集系统其它服务日志,在客户端node1 上操作,示例以openstack-nova 服务的日志为例: 3.1.先修改配置文件 /etc/rsyslog.conf,完整内容如下: [root@node1~]#egrep-v'^#|^$'/etc/rsyslog.conf $ModLoadimuxsock#providessupportforlocalsystemlogging(e.g.vialoggercommand) $ModLoadimjournal#providesaccesstothesystemdjournal $ModLoadimmark#provides--MARK--messagecapability $WorkDirectory/var/lib/rsyslog $ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat $IncludeConfig/etc/rsyslog.d/*.conf $OmitLocalLoggingon $IMJournalStateFileimjournal.state *.info;mail.none;authpriv.none;cron.none@@192.168.30.67 authpriv.*/var/log/secure mail.*-/var/log/maillog cron.*/var/log/cron *.emerg:omusrmsg:* uucp,news.crit/var/log/spooler local7.*/var/log/boot.log module(load="imfile"PollingInterval="5") $InputFileName/var/log/nova/nova-compute.log $InputFileTagnova-info: $InputFileStateFilestate-nova-info $InputRunFileMonitor 其实只添加了后5行的内容,对每项简单解释下 module(load="imfile" PollingInterval="5") 加载imfile 模块,并5秒刷新一次 $InputFileName /var/log/nova/nova-compute.log 要监控的日志文件路径 $InputFileTag nova-info: 定义文件标签 ,注意最后是冒号: $InputFileStateFile state-nova-info 定义状态文件 $InputRunFileMonitor 激活读取,可以设置多组日志读取,每组结束时设置本参数 3.2.修改完成后,重启客户端的rsyslog服务 [root@node1 ~]# systemctl restart rsyslog 3.3 验证,在rsyslog服务器上查看日志,如下图 四、总结 以前不知道这个,总以为日志转发很难,现在感觉rsyslog还是挺简单的。不过简单是因为我们只是用了最简单方法,而且功能也是只用了系统日志的转发,后续会尝试如何记录转发其它服务的日志,比如mysql、zabbix、以及nova 服务的日志。这些才是最终的目的。

优秀的个人博客,低调大师

Linux系统管理命令

<1>查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: <2>显示或设置时间:date 设置时间格式(需要管理员权限): date [MMDDhhmm[[CC]YY][.ss]] +format CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。 显示时间格式(date ‘+%y,%m,%d,%H,%M,%S’): format格式 含义 %Y,%y 年 %m 月 %d 日 %H 时 %M 分 %S 秒 <3>查看进程信息:ps 进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。 ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下: 选项 含义 -a 显示终端上的所有进程,包括其他用户的进程 -u 显示进程的详细状态 -x 显示没有控制终端的进程 -w 显示加宽,以便显示更多的信息 -r 只显示正在运行的进程 <4>动态显示进程:top top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。 在top命令执行后,可以按下按键得到对显示的结果进行排序: 按键 含义 M 根据内存使用量来排序 P 根据CPU占有率来排序 T 根据进程运行时间的长短来排序 U 可以根据后面输入的用户名来筛选进程 K 可以根据后面输入的PID来杀死进程。 q 退出 h 获得帮助 <5>终止进程:kill kill命令指定进程号的进程,需要配合 ps 使用。 使用格式: kill [-signal] pid 信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。 kill 9133 :9133 为应用程序所对应的进程号 有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束: <6>关机重启:reboot、shutdown、init 命令 含义 reboot 重新启动操作系统 shutdown –r now 重新启动操作系统,shutdown会给别的用户提示 shutdown -h now 立刻关机,其中now相当于时间为0的状态 shutdown -h 20:25 系统在今天的20:25 会关机 shutdown -h +10 系统再过十分钟后自动关机 init 0 关机 init 6 重启 <7>检测磁盘空间:df df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。 选项 含义 -a 显示所有文件系统的磁盘使用情况 -m 以1024字节为单位显示 -t 显示各指定文件系统的磁盘空间使用情况 -T 显示文件系统 <8>检测目录所占磁盘空间:du du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。 du命令的使用格式如下: du [选项] 目录或文件名 选项 含义 -a 递归显示指定目录中各文件和子目录中文件占用的数据块 -s 显示指定文件或目录占用的数据块 -b 以字节为单位显示磁盘占用情况 -l 计算所有文件大小,对硬链接文件计算多次 <9>查看或配置网卡信息:ifconfig 如果,我们只是敲:ifconfig,它会显示所有网卡的信息: <10>测试远程主机连通性:ping ping host

优秀的个人博客,低调大师

linux下管理用户(user)命令

1)管理用户(user)的工具或命令; useradd 注:添加用户 adduser 注:添加用户 passwd 注:为用户设置密码 usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等; pwcov 注:同步用户从/etc/passwd 到/etc/shadow pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整; pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件; finger 注:查看用户信息工具 id 注:查看用户的UID、GID及所归属的用户组 chfn 注:更改用户信息工具 su 注:用户切换工具 sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现; visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的; sudoedit 注:和sudo 功能差不多; 2)管理用户组(group)的工具或命令; groupadd 注:添加用户组; groupdel 注:删除用户组; groupmod 注:修改用户组信息 groups 注:显示用户所属的用户组 grpck grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建; grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

优秀的个人博客,低调大师

Linux重要命令初步认识

命令汇总 目录管理:ls、cd、pwd、mkdir、rmdir、tree 上述命令用法 备注:如果想要查找详细信息,可以参考http://man.linuxde.net/ ls - list directory contents.ls [OPTION]... [FILE]... -l:长格式 文件类型: -:普通文件 (f) d: 目录文件 b: 块设备文件 (block) c: 字符设备文件 (character) l: 符号链接文件(symbolic link file) p: 命令管道文件(pipe) s: 套接字文件(socket) 文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r-- 文件硬链接的次数 文件的属主(owner) 文件的属组(group) 文件大小(size),单位是字节 时间戳(timestamp):最近一次被修改的时间 访问:access 修改:modify,文件内容发生了改变 改变:change,metadata,元数据 -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出); -A:显示除影藏文件“.”和“..”以外的所有文件列表; -C:多列显示输出结果。这是默认选项; -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列; -F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符; -b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出; -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间; -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表; -f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果; -i:显示文件索引节点号(inode)。一个索引节点代表一个文件; --file-type:与“-F”选项的功能相同,但是不显示“*”; -k:以KB(千字节)为单位显示文件大小; -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等; -m:用“,”号区隔每个文件和目录的名称; -n:以用户识别码和群组识别码替代其名称; -r:以文件名反序排列并输出目录内容列表; -s:显示文件和目录的大小,以区块为单位; -t:用文件和目录的更改时间排序; -L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录; -R:递归处理,将指定目录下的所有文件及子目录一并处理; --full-time:列出完整的日期与时间; --color[=WHEN]:使用不同的颜色高亮显示不同类型的。 cd -Change the shell working directory.cd [-L|-P] [dir] cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。 -p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录 -L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。 - 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。 pwd - print name of current/working directory.pwd [OPTION]... pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。 --help:显示帮助信息; --version:显示版本信息。 mkdir - make directories.mkdir [OPTION]... DIRECTORY... mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 -Z:设置安全上下文,当使用SELinux时有效; -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限; -p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录; --version 显示版本信息。 rmdir - remove empty directories rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。该命令从一个目录中删除一个或多个子目录,其中dirname佬表示目录名。如果dirname中没有指定路径,则删除当前目录下由dirname指定的目录;如dirname中包含路径,则删除指定位置的目录。删除目录时,必须具有对其父目录的写权限。 -p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除; --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息; -v或-verboes:显示命令的详细执行过程; --help:显示命令的帮助信息; --version:显示命令的版本信息。 tree -树状图列出目录的内容。tree(选项)(参数) -a:显示所有文件和目录; -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合; -C:在文件和目录清单加上色彩,便于区分各种类型; -d:先是目录名称而非内容; -D:列出文件或目录的更改时间; -f:在每个文件或目录之前,显示完整的相对路径名称; -F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号; -g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码; -i:不以阶梯状列出文件和目录名称; -l:<范本样式> 不显示符号范本样式的文件或目录名称; -l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录; -n:不在文件和目录清单加上色彩; -N:直接列出文件和目录名称,包括控制字符; -p:列出权限标示; -P:<范本样式> 只显示符合范本样式的文件和目录名称; -q:用“?”号取代控制字符,列出文件和目录名称; -s:列出文件和目录大小; -t:用文件和目录的更改时间排序; -u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码; -x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。

优秀的个人博客,低调大师

linux上的交换分区管理

swap,交换分区,内存紧张的时候拿出这部分分区暂时存储内存中的内容(为了给别的程序让出内存) swapon 分区名或文件名,将指定分区或文件作为swap使用,也可以-a开启全部swap swapoff 分区名或文件名,同上,有开就有关。 swapon -s 查看目前使用的swap mysql服务器通常选择关闭swap,原因是mysql本身读写已经很费io了,交换分区再频繁的把mem里的东西挪来挪去的io就炸了... swap通常配置如下(看你实际业务需求调整): 4G以内的物理内存,SWAP 设置为内存的2倍。 4-8G的物理内存,SWAP 等于内存大小。 8-64G 的物理内存,SWAP 设置为8G。 64-256G物理内存,SWAP 设置为16G。 给swap扩容: 文件的方式:mkdir -p /data/.swap,单独建一个目录,然后cd进去 dd if=/dev/zero of=swapfile bs=1024 count=1000000,准备好交换分区文件,每个块1kb,合计大约1G的大小。 mkswap -f swapfile,将文件创建为交换分区文件,不加-f会提示你“warning: don't erase bootbits sectors on whole disk” 分区的方式:mkswap 分区名,类似mkfs那样。 怎么开启就按最上边讲的swapon,swapoff用法 查看当前交换分区大小:free命令,可以看到我这个只给了500兆mem的小可怜有了快2g的swap了(装机时默认的1G) 当然你想下次开启不用再重复操作一遍,就做永久修改 vim /etc/fstab 路径 swap swap defaults 0 0(mkswap时会生成一个uuid,当然写路径更直观)

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册