首页 文章 精选 留言 我的

精选列表

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

centos进程、线程状态 tomcat线程数 并发数查看

1、linux进程查看:ps -aux 、top USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 10368 116 ? Ss Jan16 4:57 init [3] root 2 0.0 0.0 0 0 ? S< Jan16 0:05 [migration/0] root 3 0.0 0.0 0 0 ? SN Jan16 0:02 [ksoftirqd/0] root 4 0.0 0.0 0 0 ? S< Jan16 0:00 [watchdog/0] root 5 0.0 0.0 0 0 ? S< Jan16 4:43 [migration/1] root 6 0.0 0.0 0 0 ? SN Jan16 0:04 [ksoftirqd/1] root 7 0.0 0.0 0 0 ? S< Jan16 0:00 [watchdog/1] root 8 0.0 0.0 0 0 ? S< Jan16 3:48 [migration/2] root 9 0.0 0.0 0 0 ? SN Jan16 0:15 [ksoftirqd/2] root 10 0.0 0.0 0 0 ? S< Jan16 0:00 [watchdog/2] root 11 0.0 0.0 0 0 ? S< Jan16 4:16 [migration/3] root 12 0.0 0.0 0 0 ? SN Jan16 0:22 [ksoftirqd/3] root 13 0.0 0.0 0 0 ? S< Jan16 0:00 [watchdog/3] root 14 0.0 0.0 0 0 ? S< Jan16 0:11 [migration/4] root 15 0.0 0.0 0 0 ? SN Jan16 3:55 [ksoftirqd/4] root 16 0.0 0.0 0 0 ? S< Jan16 0:00 [watchdog/4] root 17 0.0 0.0 0 0 ? S< Jan16 0:26 [migration/5] root 18 0.0 0.0 0 0 ? SN Jan16 4:53 [ksoftirqd/5] root 19 0.0 0.0 0 0 ? S< Jan16 0:00 [watchdog/5] root 20 0.0 0.0 0 0 ? S< Jan16 0:28 [migration/6] root 21 0.0 0.0 0 0 ? SN Jan16 5:08 [ksoftirqd/6] root 22 0.0 0.0 0 0 ? S< Jan16 0:00 [watchdog/6] root 23 0.0 0.0 0 0 ? S< Jan16 0:29 [migration/7] root 24 0.0 0.0 0 0 ? SN Jan16 5:13 [ksoftirqd/7] 进程状态: D 无法中断的休眠状态(通常 IO 的进程); R 正在运行可中在队列中可过行的; S 处于休眠状态; T 停止或被追踪; W 进入内存交换 (从内核2.6开始无效); X 死掉的进程 (基本很少見); Z 僵尸进程; < 优先级高的进程 N 优先级较低的进程 L 有些页被锁进内存; s 进程的领导者(在它之下有子进程); l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads); + 位于后台的进程组; 2、线程查看 ps -Lf pid、ps -T -p pid 、top -Hp pid 查看线程数ps -Lf 570470|wc -l ps -Lf 570470 UID PID PPID LWP C NLWP STIME TTY STAT TIME CMD wls81 570470 570467 570470 0 183 Apr27 ? Sl 0:00 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570476 0 183 Apr27 ? Sl 0:01 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570477 0 183 Apr27 ? Sl 0:07 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570478 0 183 Apr27 ? Sl 0:07 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570479 0 183 Apr27 ? Sl 0:04 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570480 0 183 Apr27 ? Sl 0:08 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570481 0 183 Apr27 ? Sl 0:00 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570482 0 183 Apr27 ? Sl 0:00 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570483 0 183 Apr27 ? Sl 0:00 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570484 0 183 Apr27 ? Sl 0:00 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570485 0 183 Apr27 ? Sl 0:42 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbos wls81 570470 570467 570486 0 183 Apr27 ? Sl 0:43 /wls/apache/tomcat/jdk1.7.0_67/bin/java -DserverName=tm_icp-coreSF003 -Xms1024M -Xmx1024M -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -X 线程的状态: 1.新建状态(New): 当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。 当一个线程处于新生状态时,程序还没有开始运行线程中的代码 2.就绪状态(Runnable) 一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法。当线程对象调用start()方法即启动了线程,start()方法创建线程运行的系统资源,并调度线程运行run()方法。当start()方法返回后,线程就处于就绪状态。 处于就绪状态的线程并不一定立即运行run()方法,线程还必须同其他线程竞争CPU时间,只有获得CPU时间才可以运行线程。因为在单CPU的计算机系统中,不可能同时运行多个线程,一个时刻仅有一个线程处于运行状态。因此此时可能有多个线程处于就绪状态。对多个处于就绪状态的线程是由Java运行时系统的线程调度程序(thread scheduler)来调度的。 3.运行状态(Running) 当线程获得CPU时间后,它才进入运行状态,真正开始执行run()方法. 4.阻塞状态(Blocked) 线程运行过程中,可能由于各种原因进入阻塞状态: 1>线程通过调用sleep方法进入睡眠状态; 2>线程调用一个在I/O上被阻塞的操作,即该操作在输入输出操作完成之前不会返回到它的调用者; 3>线程试图得到一个锁,而该锁正被其他线程持有; 4>线程在等待某个触发条件; ...... 所谓阻塞状态是正在运行的线程没有运行结束,暂时让出CPU,这时其他处于就绪状态的线程就可以获得CPU时间,进入运行状态。 5.死亡状态(Dead) 有两个原因会导致线程死亡: 1) run方法正常退出而自然死亡, 2) 一个未捕获的异常终止了run方法而使线程猝死。 为了确定线程在当前是否存活着(就是要么是可运行的,要么是被阻塞了),需要使用isAlive方法。如果是可运行或被阻塞,这个方法返回true; 如果线程仍旧是new状态且不是可运行的, 或者线程死亡了,则返回false. 3、网络连接状态 netstat -an Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 10.21.5.193:58080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:4265 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:11050 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:11052 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:28309 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 10.21.5.193:10050 10.21.2.83:19165 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:19200 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:18949 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:18259 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17645 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:20460 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17748 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17955 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17344 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:18420 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:20611 TIME_WAIT tcp 0 0 10.21.5.193:15909 10.21.255.227:12054 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:19950 TIME_WAIT tcp 0 0 10.21.5.193:15908 10.21.255.227:12054 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:19028 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:19755 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17136 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17877 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17521 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17304 TIME_WAIT tcp 0 0 10.21.5.193:41533 215.22.0.52:5180 ESTABLISHED tcp 0 0 10.21.5.193:25706 10.21.255.72:9988 ESTABLISHED tcp 0 0 10.21.5.193:10050 10.21.2.83:20165 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17827 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:17449 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:20380 TIME_WAIT tcp 0 0 10.21.5.193:938 215.22.0.180:2049 ESTABLISHED tcp 0 0 10.21.5.193:57503 10.21.255.226:12056 ESTABLISHED tcp 0 0 10.21.5.193:10050 10.21.2.83:17562 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:18009 TIME_WAIT tcp 0 0 10.21.5.193:10050 10.21.2.83:19438 TIME_WAIT TCP三次握手的过程如下: 主动连接端发送一个SYN包给被动连接端; 被动连接端收到SYN包后,发送一个带ACK和SYN标志的包给主动连接端; 主动连接端发送一个带ACK标志的包给被动连接端,握手动作完成。 TCP四次挥手的过程如下: 主动关闭端发送一个FIN包给被动关闭端; 被动关闭端收到FIN包后,发送一个ACK包给主动关闭端; 被动关闭端发送了ACK包后,再发送一个FIN包给主动关闭端; 主动关闭端收到FIN包后,发送一个ACK包,当被动关闭端收到ACK包后,四次挥手动作完成,连接断开。 netstat中的各种状态: CLOSED 初始(无连接)状态。 LISTEN 侦听状态,等待远程机器的连接请求。 SYN_SEND 在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。 SYN_RECV 在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。 ESTABLISHED 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。 FIN_WAIT_1 在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。 FIN_WAIT_2 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。 TIME_WAIT 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。 CLOSING 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。 CLOSE_WAIT 在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。 LAST_ACK 在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。 主动连接端可能的状态有: CLOSED SYN_SEND ESTABLISHED。 主动关闭端可能的状态有: FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT。 被动连接端可能的状态有: LISTEN SYN_RECV ESTABLISHED。 被动关闭端可能的状态有: CLOSE_WAIT LAST_ACK CLOSED。 在Linux下,如果连接数比较大,可以使用效率更高的ss来替代netstat。 4、如何查看tomcat对应的进程号:ps -ef|grep tomcat 根据进程号查询对应的目录:/proc/pid/cwd、ls -la /proc/pid/fd 根据目录查找对应的进程:lsof path 5、查看tomcat的线程数:ps -Lf pid|wc -l 6、查看tomcat的并发数:netstat -an|grep 10050|awk '{count[$6]++} END{for (i in count) print(i,count[i])}' TIME_WAIT 25 LISTEN 1 7、根据端口号查询对应进程 lsof -Pnl +m -i4|grep port #根据此命令查出端口号对应的进程pid,然后使用ps查到进程信息。 netstat -anp|grep prot #根据此命令查出端口号对应的进程pid,然后使用ps查到进程信息。

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

CentOS修改eth0网卡的名字

当虚拟机复制粘贴后,网卡名,就变成了ens33这个网卡名称了,所以想改成eth0的网卡名称,主要步骤有1、新建网卡配置脚本(ifcfg-eth0)2、修改grub 3、重新建立grub 4、重启网卡,虽然在这过程中,可能还会遇到网卡没有网的情况,那就菊花疼了 复制虚拟机后的网卡名称 网卡名称需要修改为eth0格式的 修改网卡脚本 到网卡配置目录,我看到了,我的 网卡配置脚本是ifcfg-ens33,原来的配置文件的网卡 的脚本, cd /etc/sysconfig/network-scripts/ ls #查看网卡配置的脚本 DEVICE和NAME还是以前的,需要修改为我们该成的网卡eth0,如果更改不了文件,需要切换为管理员,然后打开文件 su root 复制网卡文件到ifcfg-eth0 复制网卡配置文件 #移动操作 mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-eth0 #复制 cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-eth0 修改grub文件 修改grub配置文件,在rhgb quiet中添加:net.ifnames=0 biosdevname=0 vi /etc/default/grub 修改后的文件 重新建立grub文件 grub2-mkconfig -o /boot/grub2/grub.cfg 重启服务器 #重启服务器 reboot #查看网卡信息 ifconfig -a 本宝宝的网卡配置有问题啊 配置动态获取ip TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="eth0" UUID="30441465-3d49-4265-80ee-298c3f246497" DEVICE="eth0" ONBOOT="yes" PEERDNS="yes" PEERROUTES="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_PRIVACY="no" 重启网卡 #重启网卡 service network restart #当出现了下面失败的信息,需要查看日志 cat /var/log/messages | grep network 无法获取到链接 错误问题 是没法获取到ip,所以可能是我的NAT配置错误了 还原虚拟机NAT 还原 网卡配置信息 网卡加载好了,不过淡腾的是还是没能访问外网,菊花藤啊

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

CentOS默认权限umask、文件系统权限、特殊权限

第1章权限相关错误 1.1普通用户ls /root/ /root属于root普通用户没有任何权限,所以无法查看 [oldboy@znix ~]$ ls /root/ ls: cannot open directory /root/: Permission denied [oldboy@znix ~]$ ls -ld /root/ dr-xr-x---. 5root root4096 Sep 5 12:05 /root/ 1.2普通用户touch /root/oldboy.txt 创建文件,要看文件所在目录的权限,/root属于root普通用户没有任何权限,所以无法再里面创建文件,创建文件需要有所在目录的wx权限。 [oldboy@znix ~]$ touch /root/oldboy.txt touch: cannot touch `/root/oldboy.txt': Permission denied [oldboy@znix ~]$ ls -ld /root/ dr-xr-x---. 5root root4096 Sep 5 12:05 /root/ 1.3普通用户\rm -f /etc/passwd 删除文件需要有文件所在目录的wx权限,普通用户只有r-x权限,所以无法删除。 [oldboy@znix ~]$ \rm -f /etc/passwd rm: cannot remove `/etc/passwd': Permission denied [oldboy@znix ~]$ ls -ld /etc drwxr-xr-x. 78root root4096 Sep 5 11:27 /etc [oldboy@znix ~]$ ll /etc/passwd -rw-r--r-- 1root root1177 Sep 5 11:27 /etc/passwd 1.4普通用户cat /etc/shadow 查看文件的内容的时候,需要看文件的权限,在这里普通用户对这个文件没有任何权限,所以无法查看文件的内容。 查看文件的内容要用于文件的r权限。 [oldboy@znix ~]$ cat /etc/shadow cat: /etc/shadow: Permission denied [oldboy@znix ~]$ ll /etc/shadow ---------- 1root root881 Sep 5 11:27 /etc/shadow 1.5出现错误的解决办法 1、先确定要操作的是文件还是目录 2、确当你和操作对象的关系 3、文件先看文件的权限 4、目录先看目录的权限 5、查看文件内容、修改文件内容、运行文件(脚本),要看文件的权限 6、查看目录里的内容、删除文件、创建文件、重命名(文件改名),要看目录权限 第2章文件的访问过程 2.1过程 2.1.1 inode 文件的权限 block的位置 block 文件的实际内容 文件 相对路径访问文件 2.1.2据对路径访问 /目录 目录的block,找对应的文件 /etc目录的inode inode 文件的权限 block的位置 block 文件的实际内容 文件 2.2关系 1.文件的名字是存放在所在目录的block里面 2.文件名与inode的对应关系放在目录的block中 第3章网站权限-让网站根安全 3.1 linux系统默认权限 3.1.1文件默认权限 文件最大权限-rw-rw-rw- oldboy.txt 666 一般会给文件644权限rw-r--r-- 3.1.2目录默认权限 目录默认最大权限-rwxrwxrwx 777 一般会给目录 755权限rwxr-xr-x root root oldboydir 3.2如何规划网站权限,让网站更加安全 3.2.1让网站以www身份运行 [root@znix /]# useradd www 3.2.2让主要的文件归root用户所有 [root@znix /]# mkdir -p /app/blog [root@znix /]# mkdir -p /app/blog/upload [root@znix /]# ll -d /app/blog/ /app/blog/upload/ drwxr-xr-x 3 root root 4096 Sep 6 10:09 /app/blog/ drwxr-xr-x 2 root root 4096 Sep 6 10:09 /app/blog/upload/ [root@znix /]# su - www [www@znix ~]$ cd /app app/ application/ [www@znix ~]$ cd /app/blog/upload/ [www@znix upload]$ 3.2.3对于用户上传的文件处理 让用户上传的文件放在属于www用户的文件夹中; 限制文件的后缀; 上传之后不能查看…… [root@znix /]# chown www.www /app/blog/upload/ [root@znix /]# ll -d /app/blog/ /app/blog/upload/ drwxr-xr-x 3 root root 4096 Sep 6 10:09 /app/blog/ drwxr-xr-x 2 www www 4096 Sep 6 10:09 /app/blog/upload/ [root@znix /]# cd /app/blog/upload/ [root@znix upload]# touch aaa.png [root@znix upload]# 第4章 umask -默认权限控制 控制着linux里面默认的权限 4.1系统中文件和目录默认权限 file---666 -rw-rw-rw dir ---777 drwxrwxrwx 4.2 umask反掩码计算 默认的最大权限减去umask 4.2.1当umask为偶数 实例4-1 umask为0022 文件: file- 666-022=644 目录: dir- 777-022=755 4.2.2当umask为奇数 实例4-2 umask为0032 4.3当umask为奇数时,计算文件的默认权限的时候,要在奇数位加1 file- 666-032=634 +010=644 目录的不变 4.4示例umask=035 [root@znix ~]# umask 035 [root@znix ~]# touch file035 [root@znix ~]# mkdir dir035 [root@znix ~]# ll file035 && ll -d dir035 -rw-r---w- 1 root root 0 Sep 6 10:42 file035 drwxr---w- 2 root root 4096 Sep 6 10:42 dir035 file=642 dir=742 4.5永久修改umask的方法 [root@znix ~]# vim /etc/profile if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi 解释: 如果[用户UID>=199 ]并且 [用户的名字==用户组名字];然后 umask 002 那么 umask 022 果如 第5章文件系统的权限 5.1 chattr设置文件系统的权限(change attr) chattr +a 只能追加(append) chattr +i无敌不能进行任何操作(immutable) 5.2测试+a 只能向文件中追加内容,不能删除 [root@znix ~]# chattr +a oldboy.txt [root@znix ~]# lsattr oldboy.txt -----a-------e- oldboy.txt [root@znix ~]# echo 123 >> oldboy.txt [root@znix ~]# > oldboy.txt -bash: oldboy.txt: Operation not permitted 5.2.1取掉权限-a [root@znix ~]# chattr -a oldboy.txt [root@znix ~]# lsattr oldboy.txt -------------e- oldboy.txt 5.3测试+i 不能对文件进行任何操作,root用户也不能操作。 [root@znix ~]# chattr +i oldboy.txt [root@znix ~]# lsattr oldboy.txt ----i--------e- oldboy.txt 5.4 lsattr list attr显示文件系统的权限 [root@znix ~]# lsattr -d /etc/ -------------e- /etc/ 第6章 linux的特殊权限 -rw-r--r-- 1 root root 252 Sep 6 11:04 oldboy.txt 这个是9位基础权限。 linux共12位权限,还有3个特殊权限。 6.1三种特殊的权限 [root@znix ~]# ls -ld /tmp/ /usr/bin/passwd /usr/bin/locate /bin/ls -rwxr-xr-x. 1 root root 117048 Mar 23 02:52/bin/ls drwxrwxrwt. 11 root root 4096 Sep 6 11:29/tmp/ -rwx--s--x. 1 root slocate 38464 Mar 12 2015/usr/bin/locate -rwsr-xr-x. 1 root root 30768 Nov 24 2015/usr/bin/passwd 6.2 rwsr-xr-x 放在主人的位置上suid,运行包含suid权限的命令的时候,相当于这个命令的所有者。 比如:/usr/bin/passwd修改用户密码 6.2.1给rm目录suid权限 [root@znix ~]# chmod u+s /bin/rm [root@znix ~]# ll /bin/rm -rwsr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm [oldboy@znix ~]$ \rm -f /root/oldboy.txt [root@znix ~]# chmod u-s /bin/rm [root@znix ~]# ll /bin/rm -rwxr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm 6.2.2 suid之大S与小s 文件的权限,有x权限时+s为小s,没有x时+s为大S [root@znix ~]# ll test.txt -rw-r--r--. 2 root root 22 Sep 4 12:28 test.txt [root@znix ~]# chmod u+s test.txt [root@znix ~]# ll test.txt -rwSr--r--. 2 root root 22 Sep 4 12:28 test.txt [root@znix ~]# chmod u+x test.txt [root@znix ~]# ll test.txt -rwsr--r--. 2 root root 22 Sep 4 12:28 test.txt 6.3 drwxrwxrwt粘滞位 [root@znix ~]# ll -d /tmp/ drwxrwxrwt. 11 root root 4096 Sep 6 11:29 /tmp/ 设置了粘滞位的目录在目录下面创建的文件只能自己管理自己的 6.4 rwx--s--x sgid 用户运行locate的时候是slocate组的。很少使用! rwx--s--x. 1 root slocate 38464 Mar 12 2015 /usr/bin/locate 第7章 系统中病毒怎么办 7.1解绝办法 1、使用top命令看谁用的cpu最多 2、找出占用cpu或内存大的进程的pid号码 3、根据进程的pid杀掉进程 7.2结束进程的方法 [root@znix ~]# kill进程号码 7.3 top命令 PID pid process id进程的号码系统中是唯一的 CMD进程的名字(命令) PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND 14011 oldboy 20 0 102m 672 568 R 19.2 0.1 0:09.45dd

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

CentOS磁盘空间查看及空间满的处理

如果要查看磁盘还剩多少空间,当然是用df的命令了。 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 14G 11G 2.6G 82% / /dev/sda1 99M 14M 81M 14% /boot tmpfs 442M 275M 168M 63% /dev/shm /dev/mapper/vg_test-lv_test 24M 1.3M 21M 6% /mnt/lvm [root@localhost ~]# 当然你可能并不关系磁盘还剩余多少空间,你是需要知道当前的文件夹下的磁盘使用情况: [root@localhost ~]# du –max-depth=1 -h 24K ./.gnome www.2cto.com 8.0K ./.eggcups 8.0K ./.config 136K ./.gnome2 16K ./.chewing 8.0K ./.gnome2_private 8.0K ./.Trash 224K ./.gstreamer-0.10 28K ./Desktop 48K ./.nautilus 48K ./.metacity 240K ./.scim 3.4M ./.mozilla 1012K ./.kde 12K ./.superkaramba 40K ./.local 8.0K ./.qt 272K ./.gconf 32K ./.mcop 16K ./.redhat 1.7M ./.thumbnails 8.0K ./.gconfd 7.5M . [root@localhost ~]# 看上面使用了du –max-depth=1 -h的命令来查找磁盘的使用情况,因为后面没有跟路径,它就默认是当前的路径。这个命令的-h参数是为了方便你读懂每个文件的大小,如果没有这个参数显示的文件大小就没有k,M,G等。执行命令后,前面n-1行的是该目录下每个文件夹的大小。最后一行显示的是该目录总的大小。 然后你会说不在乎该目录下每个文件的大小,你只想知道其中某一个文件(文件夹)的大小,那么有没有办法呢?当然你应该记得,我一直强调的,方法总比问题多,这儿也不例外。 请看下面的例子: [root@localhost ~]# du -sh 7.5M . www.2cto.com [root@localhost ~]# 聪明的你一定发现了这里显示的大小和上面最后一行的大小是一样的。这就是说这里显示的大小是该目录的总大小。 我知道你心里在冷笑,不是方法比问题多吗?这里说的也只有一个答案。当然,我不会让你失望的。另一个方法比较土,但是还是可以解决问题的。 [root@localhost ~]# du -h –max-depth=0 7.5M . [root@localhost ~]# 我想告诉你的是man手册里面已经告诉了:–max-depth=0的功能和-s的功能是一样的。 当然你也可以通过sed打印最后du -h –max-depth=1一行来解决问题,但我并不推荐。 这里涉及到一个原则,尽量使用命令提供选项的原始功能。如果命令没有提供该功能,才需要我们自己使用grep,sed,awk来选取我们需要的行。 当然du命令后面可以跟文件路径,来查看指定路径的大小的。 [root@localhost ~]# du -sh /opt/oracle 5.6G /opt/oracle [root@localhost ~]# 如果磁盘过大,那么查看文件大小就比较忙,请等一会,呵呵。 [转]http://www.2cto.com/os/201207/142116.html http://www.cnblogs.com/longdouhzt/p/3177755.html 以下转自:http://www.cnblogs.com/starRebel/p/5897450.html 今天在运行R脚本的时候报了个错:Fatal error: cannot create ‘R_TempDir’。排除了是自己写的代码的问题,想着应该是某个没见过的原因,google之,发现网上的说法是/tmp文件夹占满了磁盘空间。 运行 df 命令: Filesystem Size Used Avail Use% Mounted on /dev/mapper/VG00-LV01 50G 47G 16M 100% / 发现确实有个分区被占满了。。。 第一次碰到这种情况,继续google之,使用如下命令 du -sh /* | sort -nr 可以得到 / 目录下所有文件和目录的大小的排序结果。 从中找出最大的,在我的机器中/var文件占用了47个G的大小,应该就是它了,使用上面的命令继续追踪: du -sh /var/* | sort -nr du -sh /var/log/* | sort -nr du -sh /var/log/httpd/* | sort -nr 一层一层往下追踪,最后发现是 httpd/目录下的ssl_error_log占据了超大磁盘空间,看了下文件内容,估计是某次链接导致了大量错误信息被一遍遍的循环写入。 不多想,直接把这文件删除。 运行 df -i: Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/VG00-LV01 3276800 226882 3049918 7% / tmpfs 4069835 7 4069828 1% /dev/shm /dev/md0 51200 39 51161 1% /boot /dev/mapper/VG00-LV02 56705024 11756 56693268 1% /opt 没有太大使用量,这是因为-i查看inode节点情况,和文件大小是不同概念。 再次运行df -h命令: Filesystem Size Used Avail Use% Mounted on /dev/mapper/VG00-LV01 50G 47G 16M 100% / 仍然还是100%,明明已经删除了啊。。。 不解,继续google之。。 结论是“在Linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行。这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小。” 找出文件使用者,kill掉: lsof -n | grep deleted 找到使用ssl_error_log文件的进程,kill掉,然后再次df -h,发现已经没有100%的情况了。 处理完成~~

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

CentOS删除目录下的文件的几种方法

删除当前目录下的文件 1.rm -f * #最经典的方法,删除当前目录下的所有类型的文件 2.find . -type f -delete或find . -type f -exec rm -f {} \; #用find命令查找普通文件并删除or用find命令的处理动作将其删除 3.find . -type f | xargs rm -f #用于参数列表过长;要删除的文件太多 4.rm-f `find . -type f` #删除全部普通文件 5.for delete in `ls -l`;do rm -f * ;done #用for循环语句删除当前目录下的所有类型的文件 删除指定目录下的文件 1.rm -f指定目录* #最经典的方法,删除指定目录下的所有类型的文件 2.find 指定目录 -type f -delete或find指定目录-type f -exec rm -f {} \; #用find命令查找指定目录下的所有普通文件并删除or用find命令的处理动作将其删除 3.find指定目录-type f | xargs rm -f #用于参数列表过长;要删除的文件太多 4.rm-f `find指定目录-type f` #删除指定目录下的全部普通文件 5.for delete in `ls –l指定目录路径`;do rm -f * ;done #用for循环语句删除指定目录下的所有类型的文件 补充(一个笨方法):yes | rm -ri * &> /dev/null或yes | rm-ri test/* &> /dev/null #删除当前目录下的全部类型的文件or删除test目录下的全部类型的文件

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

flume1.6 centos6.x 安装与配置

详情请参考: http://my.oschina.net/leejun2005/blog/288136 hadoop下载 1 wgethttp: //apache .fayea.com /hadoop/common/hadoop-2 .7.2 /hadoop-2 .7.2. tar .gz 安装步骤: 参考 http://www.open-open.com/lib/view/open1435761287778.html 和 http://blog.csdn.net/greensurfer/article/details/39450369 常用命令验证: yum install 安装的java环境路径 1 export JAVA_HOME= /usr/lib/jvm/java-1 .7.0-openjdk.x86_64/ ./bin/hdfs namenode -format ./start-dfs.sh ./stop-dfs.sh /usr/local/hadoop/bin/hadoop dfsadmin -report jps 本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1785617如需转载请自行联系原作者 cuizhiliang

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

阿里云ECS CentOS7.3 vsftpd 安装、配置、卸载

一、卸载 1、查看当前服务器中的vsftpd rpm -qa|grep vsftpd 例如结果为:vsftpd-2.2.2-13.el6_6.1.x86_64 2、执行卸载 rpm -e vsftpd-2.2.2-13.el6_6.1.x86_64 返回:卸载时自动备份vsftp的用户列表文件 warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave warning: /etc/vsftpd/user_list saved as /etc/vsftpd/user_list.rpmsave 3、删除遗留的文件 rm -rf /etc/vsftpd 二、安装 yum -y install vsftpd 三、配置 1、修改配置文件,/etc/vsftpd/vsftpd.conf,可以整个覆盖 # Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's # capabilities. # # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # # Uncomment this to allow local users to log in. # When SELinux is enforcing check for SE bool ftp_home_dir local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # allow_writeable_chroot=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. # When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access #anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. #anon_mkdir_write_enable=YES # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/xferlog # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. xferlog_std_format=YES # # You may change the default value for timing out an idle session. idle_session_timeout=600 # # You may change the default value for timing out a data connection. data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. ascii_upload_enable=YES ascii_download_enable=YES # # You may fully customise the login banner string: ftpd_banner=Welcome to blah FTP service. # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd/banned_emails # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that # the user does not have write access to the top level directory within the # chroot) chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd/chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. ls_recurse_enable=YES # # When "listen" directive is enabled, vsftpd runs in standalone mode and # listens on IPv4 sockets. This directive cannot be used in conjunction # with the listen_ipv6 directive. listen=YES # # This directive enables listening on IPv6 sockets. By default, listening # on the IPv6 "any" address (::) will accept connections from both IPv6 # and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6 # sockets. If you want that (perhaps because you want to listen on specific # addresses) then you must run two copies of vsftpd with two configuration # files. # Make sure, that one of the listen options is commented !! #listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO #这个是ftp根目录,根据你自己的情况配置 local_root=/var/ftp tcp_wrappers=YES use_localtime=YES 2、增加FTP账户 useradd ftpadmin -s /sbin/nologin 给ftpadmin设置密码 passwd ftpadmin 输入两遍密码即可 2.1、如果出现useradd: user 'ftpadmin' already exists,说明用户已经存在,需要先删除,否则还可能登陆不了。 删除用户 userdel ftpadmin 查找遗留的文件和目录 find / -name ftpadmin 例如出来结果: /var/spool/mail/ftpadmin /home/ftpadmin 哪个要删,哪个不要删,看清楚目录再删除,谨慎使用删除命令,否则遗憾多久就不知道了 rm -rf /var/spool/mail/ftpadmin rm -rf /home/ftpadmin 3、修改/etc/vsftpd/user_list文件,最后一行添加刚才创建的用户名ftpadmin,也可以整个覆盖 # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody #这个就是刚才创建的那个,根据你自己的情况来 ftpadmin 4、创建FTP根目录 mkdir /var/ftp 如果上述目录已经存在,只需要修改权限即可 chown -R ftpadmin /var/ftp chmod -R 755 /var/ftp 5、设置开机启动 chkconfig --level 35 vsftpd on 到此,安装配置完毕,重新启动vsftpd服务 service vsftpd restart 就可以使用FlashFXPE或者FileZilla登陆FTP了。 下面以FileZilla为例,看图片

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

Centos7 LAMP环境下安装zabbix3.0

zabbix3.0安装注意: 1、PHP要5.4版本以上 2、防火墙关闭 3、selinux关闭 临时关闭selinux: setenforce 0 //设置SELinux 成为permissive模式 彻底禁用selinux: 使用root用户,vim /etc/sysconfig/selinux,将SELINUX=enforcing修改成SELINUX=disabled。 重启后才能生效。 临时关闭防火墙: service iptables stop 永久关闭防火墙: chkconfig iptables off 一 、 Zabbix数据库设置 zabbix数据库可以和zabbix服务器分离,采用用专门的mysql服务器存储数据,此时要给zabbix数据库受相应的权限。 (1)进入mysql [root@localhost lanmp]# mysql -u root -p 1 (2)创建支持utf8的zabbix的数据库 mysql> create database zabbix character set utf8; 1 (3)给zabbix数据库相应的权限 mysql> grant all privileges on zabbix.* to zabbix_user@'192.168.233.128' identified by '123456'; 3.安装Zabbix服务 (1)增加zabbix用户和组 [root@localhost lanmp]# groupadd zabbix [root@localhost lanmp]# useradd -g zabbix -m zabbix 二、安装PHP 安装 PHP数据库及其他插件 # yum --enablerepo=remi,remi-php55 install php-fpm php-common php-devel php-mysqlnd php-mbstring php-mcrypt httpd php mysql mysql-server php-mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel mod_ssl mod_perl mod_auth_mysql net-snmp 查看 PHP 版本 # php -v PHP 5.5.9 (cli) (built: Feb 11 2014 08:25:33) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies 三、安装zabbix 安装插件 yum --enablerepo=remi,remi-php55 install mysql-devel libxml2-devel net-snmp-devel libcurl-devel 1、下载zabbix 3.0包 wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.1/zabbix-3.0.1.tar.gz //建议先再到本地再上传 tar xfzabbix-3.0.1.tar.gz cdzabbix-3.0.1 ./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2 //提示以上内容表示安装成功 make make install 导入数据文件 注意前后顺序 cd /usr/local/zabbix-3.0.1/database/mysql/ /usr/local/mysql/bin/mysql -uzabbix -p zabbix < schema.sql //导入顺序不能错 /usr/local/mysql/bin/mysql -uzabbix -p zabbix < images.sql /usr/local/mysql/bin/mysql -uzabbix -p zabbix < data.sql 2.编辑配置文件并启动: 日志默认在/tmp目录下 vim /usr/local/zabbix/etc/zabbix_server.conf -------------------------------------------------------------> DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix ListenIP=127.0.0.1 <------------------------------------------------------------- /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf //启动服务 查看端口,已经开始监听了: 3、拷贝zabbix应用到WEB根目录下 cdzabbix-3.0.1/frontends/php/ cp -a . /var/www/html/zabbix/ chown -R apache.apache /var/www/html/zabbix/* 4、配置php并启动httpd: vim /etc/php.ini -----------------------------------------> date.timezone = Asia/Shanghai post_max_size = 16M max_execution_time = 300 max_input_time = 300 -----------------------------------------> service httpd start 用浏览器访问http://192.168.19.88/zabbix,并按照提示安装: 在操作连接数据库时可能会出现 The frontend does not match Zabbix database. Current database version (mandatory/optional): 2050061/2050061. Required mandatory version: 3000000. Contact your system administrator. 遇到这种问题需要删除一下创建的zabbix库,然后在从新导入zabbix库文件。 // 我建的zabbix用户是:zabbix_user 密码是:123456 这里手动加入的用户是:zabbix密码:zabbix 仅供参考 提示没有连上数据说明用户密码不对 这里出现权限报错,将配置文件下载下来保存到/var/www/html/zabbix/conf/zabbix.conf.php文件中。如果手动写入配置文件之后如果还报错,可以忽略,将浏览器关闭并重新打开连接即可。登录账号admin,登录密码zabbix: vim /var/www/html/zabbix/conf/zabbix.conf.php //或者也手动写入配置 ----------------------------------------------------------> <?php // Zabbix GUI configuration file. global $DB; $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = ‘127.0.0.1'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = ‘zabbix'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ''; $ZBX_SERVER = ‘127.0.0.1'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = ''; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; ?> 四、开启zabbix对中文的支持 原来zabbix默认把对中文的支持给关闭了,我们需要修改zabbix的php源文件. 修改站点根目录下include/locales.inc.php文件. # vim include/locales.inc.php function getLocales() { return array( 'en_GB' => array('name' => _('English (en_GB)'),'display' => true), 'en_US' => array('name' => _('English (en_US)'),'display' => true), 'bg_BG' => array('name' => _('Bulgarian (bg_BG)'),'display' => true), 'zh_CN' => array('name' => _('Chinese (zh_CN)'),'display' => true), //原本这里为false,请改为true ...........代码省略掉....... 五 、后期优化 设置开机启动,将源码包中提供的init.d启动脚本拷贝到系统中 [root@bogon ~]# cd /usr/local/zabbix-3.0.1/ [root@bogon zabbix-3.0.1]# cp misc/init.d/fedora/core core/ core5/ [root@bogon zabbix-3.0.1]# cp misc/init.d/fedora/core/zabbix_* /etc/init.d/ -v "misc/init.d/fedora/core/zabbix_agentd" -> "/etc/init.d/zabbix_agentd" "misc/init.d/fedora/core/zabbix_server" -> "/etc/init.d/zabbix_server" 编辑启动脚本以适应自己的安装环境 修改服务器端启动文件 #vi /etc/init.d/zabbix_server 将BASEDIR=/usr/local/替换为BASEDIR=/usr/local/zabbix(以之前编译的位置为准) 修改客户器端启动文件: #vi /etc/init.d/zabbix_agentd 将BASEDIR=/usr/local/替换为BASEDIR=/usr/local/zabbix(以之前编译的位置为准) 添加系统服务 chkconfig --add zabbix_server chkconfig --add zabbix_agentd chkconfig --level 35 zabbix_server on chkconfig --level 35 zabbix_agentd on chkconfig --list

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

CentOS下的拷贝(cp)、删除(rm)、剪切(mv)命令

cp命令 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。 语法: cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。 该命令的各选项含义如下: - a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。 - d 拷贝时保留链接。 - f 删除已经存在的目标文件而不提示。 - i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 - p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。 - l 不作拷贝,只是链接文件。 需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。 $ cp - i exam1.c /usr/wang/shiyan1.c 该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为 shiyan1.c。若不希望重新命名,可以使用下面的命令: $ cp exam1.c /usr/ wang/ $ cp - r /usr/xu/ /usr/liu/ 将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。 mv命令 用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。 语法:mv [选项] 源文件或目录 目标文件或目录 说 明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令 完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源 文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接 也将丢失。 命令中各选项的含义为: - I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。 - f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。 如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用i选项。 需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并末增加,而cp对文件进行复制,文件个数增加了。 例1:将/usr/xu中的所有文件移到当前目录(用“.”表示)中: $ mv /usr/xu/ * . 例2:将文件wch.txt重命名为wjz.doc $ mv wch.txt wjz.doc rm命令 在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm命令的一般形式为: rm [选项] 文件… 如果没有使用- r选项,则rm不会删除目录。 该命令的各选项含义如下: - f 忽略不存在的文件,从不给出提示。 - r 指示rm将参数中列出的全部目录和子目录均递归地删除。 - i 进行交互式删除。 使 用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按了回车键 并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下一个例子中,用户要删除文件test和 example。然后会被要求对每个文件进行确认。用户最终决定删除example文件,保留test文件。 $ rm - ii test example Remove test ?n Remove example ?y

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

centos下查看程序日志的一些总结

在开发中,我们经常在代码中添加日志,主要作用是程序在服务器上跑出bug时方便进行问题排查,因为在服务器上不可能像在本地运行程序那样debug,所以日志对于我们非常重要,几乎就是解决问题唯一能依赖的东东。 在查看服务器日志时,经常使用以下几条命令: tail -300f xxx.log | grep "userId" tail -300f xxx.log | grep "userId" -B 20 -C 20 tail -300f xxx.log | grep "userId" | grep "hello" cat xxx.log | grep "userId" tail是查看文件尾部的内容,由于程序中添加日志是添加在文件尾部的,因此文件尾部的内容一直是最新的 。这个命令适用于动态查看日志内容。 grep 是用来过滤内容的,按行过滤,只要一行日志中的内容包含 “userId” 字符串 ,那么就会打印出来。 | 是linux的管道,用来重定向输出到下一个命令的输入。 grep的 -B 和 -C 参数 意思为找到含有xx字符串的行,然后打印出此行以及此行向前20行和向后20行。 -300f 意思是看文件尾部的300行。 两次grep就是从第一个grep的输出中再进行一次过滤。 注意:grep 的字符串内容是按照正则表达式进行处理的,因此比如像.*这种特殊字符(在正则中),如果想按文本匹配,需要用\进行转义 。看如下例子: 首先我创建了一个文件,名为file ,文件内容为: hello world . i am a programmer yes ok byby 然后执行如下命令: cat file | grep "." 原意为过滤出包含.的那行,但结果如下: hello world . i am a programmer yes ok byby grep按照正则表达书处理,.代表任意内容,因此一行中包含任何内容都会被打印出。 为了达到原目的,需要对.进行转义: cat file | grep "\." 结果如下: hello world . i 达到目的。 2017-03-30添加 grep -E "column1|column2" a.txt// 每一行出现column1或者column2 du -h - -max-depth=1 从当前目录开始显示两层深度的文件及文件夹大小 df -h 显示磁盘使用情况 cp /dev/null a.txt 清空文件,即删除 sz filename 下载服务器文件到本地 rz -be 上传文件到服务器 ls -ald l 表示输出一个长清单,d表示列出目录,a表示列出以 . 开头的文件。 在java程序里写文件时,要保证文件所在的各级文件夹已经存在,但是文件可以不存在;另外,启动该java程序的user需要有该文件和文件夹rw权限。一般可以写到user的 home目录中去,这里肯定有权限。 split -l 100000 user.sql 按行数每十万行拆分成一个小文件 统计日志中某个字符串出现的行数 grep str a.log | wc -l 若grep加了 -o 就是统计字符串出现的次数

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册