首页 文章 精选 留言 我的

精选列表

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

CentOS下yum 安装过程下载的包存放路径

[root@Rhel5 packages]# cat /etc/yum.conf | grep cachedir cachedir=/var/cache/yum 这就是保存的地方, [root@Rhel5 packages]# ll total 100 -rw-r--r-- 1 root root 94864 Nov 13 05:16 hwbrowser-0.30-2.el5.noarch.rpm [root@Rhel5 packages]# pwd /var/cache/yum/rhel-debuginfo/packages [root@Rhel5 packages]# cat /etc/yum.conf | grep keep keepcache=1 还要把/etc/yum.conf中的keepcache改成1,默认是0即安装后不保存包头和软件包

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

解决CentOS根目录执行chmod -R 777 / 的补救方法

ch /etc/ chmod 644 passwd group shadow chmod 400 gshadow cd ssh chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_key.pub ssh_host_rsa_key.pub chmod 640 ssh_config 然后尝试使用ssh登录,正常。 如果使用普通用户登录,使用su - 切换root会出现以下错误: root "su cannot set groups" 这是因为su必须有s权限才能预读取root的相关配置,需要使用如下命令: chmod u+x `which su` 然后就可以进入系统了。 找一台干净的机器,把系统的权限导出,然后在导入本机 在干净的机器上执行:getfacl -R / > ./linux.chmod.bak 在本机上执行:setfacl --restore=/root/linux.chmod.bak 重启服务器使权限生效

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

CentOS企业运维人员最常用150个命令汇总

命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用。 help 查看Linux内置命令的帮助,比如cd命令。 文件和目录操作命令(18个) ls 全拼list,功能是列出目录的内容及其内容属性信息。 cd 全拼change directory,功能是从当前工作目录切换到指定的工作目录。 cp 全拼copy,其功能为复制文件或目录。 find 查找的意思,用于查找目录及目录下的文件。 mkdir 全拼make directories,其功能是创建目录。 mv 全拼move,其功能是移动或重命名文件。 pwd 全拼print working directory,其功能是显示当前工作目录的绝对路径。 rename 用于重命名文件。 rm 全拼remove,其功能是删除一个或多个文件或目录。 rmdir 全拼remove empty directories,功能是删除空目录。 touch 创建新的空文件,改变已有文件的时间戳属性。 tree 功能是以树形结构显示目录下的内容。 basename 显示文件名或目录名。 dirname 显示文件或目录路径。 chattr 改变文件的扩展属性。 lsattr 查看文件扩展属性。 file 显示文件的类型。 md5sum 计算和校验文件的MD5值。 查看文件及内容处理命令(21个) cat 全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。 tac tac是cat的反向拼写,因此命令的功能为反向显示文件内容。 more 分页显示文件内容。 less 分页显示文件内容,more命令的相反用法。 head 显示文件内容的头部。 tail 显示文件内容的尾部。 cut 将文件的每一行按指定分隔符分割并输出。 split 分割文件为不同的小片段。 paste 按行合并文件内容。 sort 对文件的文本内容排序。 uniq 去除重复行。oldboy wc 统计文件的行数、单词数或字节数。 iconv 转换文件的编码格式。 dos2unix 将DOS格式文件转换成UNIX格式。 diff 全拼difference,比较文件的差异,常用于文本文件。 vimdiff 命令行可视化文件比较工具,常用于文本文件。 rev 反向输出文件内容。 grep/egrep 过滤字符串,三剑客老三。 join 按两个文件的相同字段合并。 tr 替换或删除字符。 vi/vim 命令行文本编辑器。 文件压缩及解压缩命令(4个) tar 打包压缩。oldboy unzip 解压文件。 gzip gzip压缩工具。 zip 压缩工具。 信息显示命令(11个) uname 显示操作系统相关信息的命令。 hostname 显示或者设置当前系统的主机名。 dmesg 显示开机信息,用于诊断系统故障。 uptime 显示系统运行时间及负载。 stat 显示文件或文件系统的状态。 du 计算磁盘空间使用情况。 df 报告文件系统磁盘空间的使用情况。 top 实时显示系统资源使用情况。 free 查看系统内存。 date 显示与设置系统时间。 cal 查看日历等时间信息。 搜索文件命令(4个) which 查找二进制命令,按环境变量PATH路径查找。 find 从磁盘遍历查找文件或目录。 whereis 查找二进制命令,按环境变量PATH路径查找。 locate 从数据库(/var/lib/mlocate/mlocate.db)查找命令,使用updatedb更新库。 用户管理命令(10个) useradd 添加用户。 usermod 修改系统已经存在的用户属性。 userdel 删除用户。 groupadd 添加用户组。 passwd 修改用户密码。 chage 修改用户密码有效期限。 id 查看用户的uid,gid及归属的用户组。 su 切换用户身份。 visudo 编辑/etc/sudoers文件的专属命令。 sudo 以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。 基础网络操作命令(11个) telnet 使用TELNET协议远程登录。 ssh 使用SSH加密协议远程登录。 scp 全拼secure copy,用于不同主机之间复制文件。 wget 命令行下载文件。 ping 测试主机之间网络的连通性。 route 显示和设置linux系统的路由表。 ifconfig 查看、配置、启用或禁用网络接口的命令。 ifup 启动网卡。 ifdown 关闭网卡。 netstat 查看网络状态。 ss 查看网络状态。 深入网络操作命令(9个) nmap 网络扫描命令。 lsof 全名list open files,也就是列举系统中已经被打开的文件。 mail 发送和接收邮件。 mutt 邮件管理命令。 nslookup 交互式查询互联网DNS服务器的命令。 dig 查找DNS解析过程。 host 查询DNS的命令。 traceroute 追踪数据传输路由状况。 tcpdump 命令行的抓包工具。 有关磁盘与文件系统的命令(16个) mount 挂载文件系统。 umount 卸载文件系统。 fsck 检查并修复Linux文件系统。 dd 转换或复制文件。 dumpe2fs 导出ext2/ext3/ext4文件系统信息。 dump ext2/3/4文件系统备份工具。 fdisk 磁盘分区命令,适用于2TB以下磁盘分区。 parted 磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。 mkfs 格式化创建Linux文件系统。 partprobe 更新内核的硬盘分区表信息。 e2fsck 检查ext2/ext3/ext4类型文件系统。 mkswap 创建Linux交换分区。 swapon 启用交换分区。 swapoff 关闭交换分区。 sync 将内存缓冲区内的数据写入磁盘。 resize2fs 调整ext2/ext3/ext4文件系统大小。 系统权限及用户授权相关命令(4个) chmod 改变文件或目录权限。 chown 改变文件或目录的属主和属组。 chgrp 更改文件用户组。 umask 显示或设置权限掩码。 查看系统用户登陆信息的命令(7个) whoami 显示当前有效的用户名称,相当于执行id -un命令。 who 显示目前登录系统的用户信息。 w 显示已经登陆系统的用户列表,并显示用户正在执行的指令。 last 显示登入系统的用户。 lastlog 显示系统中所有用户最近一次登录信息。 users 显示当前登录系统的所有用户的用户列表。 finger 查找并显示用户信息。 内置命令及其它(19个) echo 打印变量,或直接输出指定的字符串 printf 将结果格式化输出到标准输出。 rpm 管理rpm包的命令。 yum 自动化简单化地管理rpm包的命令。 watch 周期性的执行给定的命令,并将命令的输出以全屏方式显示。 alias 设置系统别名。 unalias 取消系统别名。 date 查看或设置系统时间。 clear 清除屏幕,简称清屏。 history 查看命令执行的历史纪录。 eject 弹出光驱。 time 计算命令执行时间。 nc 功能强大的网络工具。 xargs 将标准输入转换成命令行参数。 exec 调用并执行指令的命令。 export 设置或者显示环境变量。 unset 删除变量或函数。 type 用于判断另外一个命令是否是内置命令。 bc 命令行科学计算器 系统管理与性能监视命令(9个) chkconfig 管理Linux系统开机启动项。 vmstat 虚拟内存统计。 mpstat 显示各个可用CPU的状态统计。 iostat 统计系统IO。 sar 全面地获取系统的CPU、运行队列、磁盘I/O、分页(交换区)、内存、CPU中断和网络等性能数据。 ipcs 用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 ipcrm 用来删除一个或更多的消息队列、信号量集或者共享内存标识。 strace 用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 ltrace 命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。 关机/重启/注销和查看系统信息的命令(6个) shutdown 关机。 halt 关机。 poweroff 关闭电源。 logout 退出当前登录的Shell。 exit 退出当前登录的Shell。 Ctrl+d 退出当前登录的Shell的快捷键。 进程管理相关命令(15个) bg 将一个在后台暂停的命令,变成继续执行(在后台执行)。 fg 将后台中的命令调至前台继续运行。 jobs 查看当前有多少在后台运行的命令。 kill 终止进程。 killall 通过进程名终止进程。 pkill 通过进程名终止进程。 crontab 定时任务命令。 ps 显示进程的快照。 pstree 树形显示进程。 nice/renice 调整程序运行的优先级。 nohup 忽略挂起信号运行指定的命令。 pgrep 查找匹配条件的进程。 runlevel 查看系统当前运行级别。 init 切换运行级别。 service 启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

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

centos6.0安装bind9.7遇到的问题总结

1.[root@zh888 ~]#yum -y install bind* //用yum安装所有bind软件 2.[root@zh888 ~]# rpm -qa|grep bind//查询bind安装的所有软件 bind-9.7.3-8.P3.el6_2.2.i686 bind-libs-9.7.3-8.P3.el6_2.2.i686 bind-sdb-9.7.3-8.P3.el6_2.2.i686 bind-devel-9.7.3-8.P3.el6_2.2.i686 bind-utils-9.7.3-8.P3.el6_2.2.i686 3.[root@zh888 ~]# cat /etc/named.conf //查看named.conf主配置文件 // // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { any; }; // 开启侦听端口53,接受任意IP连接 listen-on-v6 port 53 { ::1; }; directory "/var/named";//这里是目录正向反向区域都创建在这个目录下 dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { 0.0.0.0/0; }; //// 允许任意IP查询这里也可以修改为any如果不修改会在nslookup出现错误refused被拒绝 forward only; //增加转发功能 forwarders { 202.101.172.35; //浙江DNS服务器地址 202.101.172.46;}; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; //主要配置文件 4.// named.rfc1912.zones:///etc/named.rf1912.zones配置文件如下就在最后添加正向和反向区域文件 // // Provided by Red Hat caching-nameserver package // // ISC BIND named zone configuration for zones recommended by // RFC 1912 section 4.1 : localhost TLDs and address zones // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt // (c)2007 R W Franks // // See /usr/share/doc/bind*/sample/ for example named configuration files. // //主配置文件/etc/named.conf的配置语句 acl 定义IP地址的访问控制清单 control 定义ndc使用的控制通道 include 把其他文件包含到配置文件中 key 定义授权的安全密钥 logging 定义日志写什么,写到哪 opitons 定义全局配置选项和缺省值 server 定义远程服务器的特征 trunsted-keys 为服务器定义DNSSEC加密密钥 zone 定义一个区 其中type项的值:master:表示定义的是主域名服务器slave :表示定义的是辅助域名服务器hint:表示是互联网中根域名服务器 第一行是TTL设定,生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。这里定义为604800秒,也就是1周.第二行是$ORIGIN设定,说明下面的记录出自何处.请您加倍留意最后的一个小小数点"."第三行,是一个 SOA 记录的设定,在这里我们看到一个特殊字符 @ ,它就是 ORIGIN 的意思,也就是刚刚所定义的$ ORIGIN zh888.com. 的内容,您可以写成 zh888.com. 也可以用 @ 来代替。假如这个文件前面没有定义 $ ORIGIN 的话, 那這个 @ 的值就以 named.conf 里的 zone .接着 SOA 后面,指定了这个区域的授权主机和管理者的信箱,这里分别是"zh888.com." 和"root.zh888.com."。我们平时使用的信箱通常是 “user@host”这样的格式,但因为@在 DNS 记录中是个保留字符,所以在 SOA 中就用“.”来代替了@。目前这个信箱是 " root@zh888.com."。 接下来的 SOA 设置,是被括在“( )”之间的 5 组数字,主要作为和 slave 服务器同步 DNS 资料所使用的资料: Serial:其格式通常会是“年月日+修改次序”(但也不一定如此,您自己能够记得就行)。当 slave 要进行资料同步的时候,会比较这个号码。如果发现在这里的号码比它那边的数值“大”,就进行更新,否则忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字! Refresh:这里是是告诉 slave 要隔多久要进行资料同步(是否同步要看 Serial 的比较结果)。 Retry:如果 slave 在进行更新失败后,要隔多久再进行重试。 Expire:这是记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期( expired )。 Minimum:这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。 请注意:SOA 记录中这对 “ ( ) ”符号之第一个 “ (”括号一定要和 SOA 写在同一行,而不能用 Enter 断行到下一行去,而且其左边最好有一个空格键或 tab 建。而最后一个 “ )”括号也不能写在注解符号 “ ;”的右边。 置 DNS 的 RR 记录档,其格式要求非常严格,我们丝毫不能掉以轻心。比方说:如果句子不是以空格键、Tab 键、 或注解符号 ( ; )开头,也不在 SOA 的 “ ( ) ”之内, 则表示要定义一个“新记录项 (Entry) ”;如果句子是以空格键或 tab 键开始的话,其设置被视为上一个“记录项”的内容。所以,如果您要为“同一个记录项”定义多个记录设置,而不想重复打字,您倒可以偷懒:在接着它的后面几行用空白或 Tab 来缩排就可以了。 NS表明负责zh888.com.这个域的Name Server是zh888.com这台主机 MX记录标明发往zh888.com域的邮件由mail.zh888.com这台服务器接收 A记录标明了IP地址和域名之间的对应关系 接下来创建该区的反向映射资源文件 zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; }; zone "zh888.com" IN { //正向区域 type master; //类型为master file "zh888.com"; //文件名字为zh888.com在/var/named中创建touch一个zh888.com allow-update { none; }; }; zone "40.168.192.in-addr.arpa" IN { //反向区域文件 type master; file "zh888.rev"; allow-update { none; }; }; 5.[root@zh888 named]# ls //查看/var/named/目录下的内容: data dynamic named.ca named.empty named.localhost named.loopback slaves zh888.com zh888.rev 6.[root@zh888 named]# cat zh888.com //查看正向区域文件 $TTL 1D @ IN SOA zh888.com. root.zh888.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 www IN A 192.168.40.40 mail IN A 192.168.40.40 mail IN MX 10 mail.zh888.com 7.[root@zh888 named]# cat zh888.rev //反向区域 $TTL 86400 @ IN SOA zh888.com. root.zh888.com. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum @ IN NS zh888.com. 40 IN PTR mail.zh888.com. 40 IN PTR www.zh888.com. 8.[root@zh888 bind]# cat /etc/resolv.conf //设置域名为本机ip nameserver 192.168.40.40 search zh888.com 9.[root@zh888 bind]# cat /etc/hosts //查看本地hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.40.40 zh888.com zh888 10.[root@zh888 bind]# cat /etc/sysconfig/network//查看本地hostname NETWORKING=yes HOSTNAME=zh888.com 11.测试nslookup [root@zh888 bind]# service named restart Stopping named: . [ OK ] Starting named: [ OK ] [root@zh888 bind]# nslookup > www.zh888.com Server: 192.168.40.40 Address: 192.168.40.40#53 ** server can't find www.zh888.com.zh888.com: REFUSED > //出现这个原因为/etc/named.conf allow-query { 0.0.0.0; } 如果没加/0就会出现上面的拒绝信息或者为any也是可以的。 [root@zh888 bind]# service named restart//修改好之后重启named服务 Stopping named: . [ OK ] Starting named: [ OK ] [root@zh888 bind]# nslookup//查看DNS正向区域 > www.zh888.com Server: 192.168.40.40 Address: 192.168.40.40#53 Name: www.zh888.com Address: 192.168.40.40 //成功查询哈哈! [root@zh888 bind]# nslookup//查看DNS反向区域 > 192.168.40.40 Server: 192.168.40.40 Address: 192.168.40.40#53 40.40.168.192.in-addr.arpa name = www.zh888.com. 40.40.168.192.in-addr.arpa name = mail.zh888.com. //成功查询。 [root@zh888 bind]# nslookup > set type=MX > mail.zh888.com Server: 192.168.40.40 Address: 192.168.40.40#53 mail.zh888.com mail exchanger = 10 mail.zh888.com.zh888.com. > //邮件交换成功 > set type=SOA //查看授权信息 > zh888.com Server: 192.168.40.40 Address: 192.168.40.40#53 zh888.com origin = zh888.com mail addr = root.zh888.com serial = 0 refresh = 86400 retry = 3600 expire = 604800 minimum = 10800 本文转自zh888 51CTO博客,原文链接:http://blog.51cto.com/zh888/798371,如需转载请自行联系原作者

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

Centos运维管理员常用命令大全

1.删除0字节文件 find-type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 PS-e -o "%C : %p : %z : %a"|sort -k5 -nr 3.按cpu利用率从大到小排列 ps-e -o "%C : %p : %z : %a"|sort -nr 4.打印说cache里的URL grep -r-a jpg /data/cache/* | strings | grep"http:" | awk -F'http:' '{print "http:"$2;}' 5.查看http的并发请求数及其TCP连接状态: netstat-n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 6. sed -i'/Root/s/no/yes/' /etc/ssh/sshd_configsed在这个文里Root的一行,匹配Root一行,将no替换成yes. 7.1.如何杀掉mysql进程: ps aux|grep mysql |grep -v grep |awk '{print$2}' |xargs kill -9 (从中了解到awk的用途) killall -TERMmysqld kill -9`cat /usr/local/apache2/logs/httpd.pid`试试查杀进程PID 8.显示运行3级别开启的服务: ls/etc/rc3.d/S* |cut -c 15- (从中了解到cut的用途,截取数据) 9.如何在编写SHELL显示多个信息,用EOF cat<< EOF +--------------------------------------------------------------+ | === Welcome to Tunoff services === | +--------------------------------------------------------------+ EOF 10. for 的巧用(如给mysql建软链接) cd/usr/local/mysql/bin for i in* do ln/usr/local/mysql/bin/$i /usr/bin/$i done 11. 取IP地址: ifconfigeth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6- 或者 ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}' 12.内存的大小: free -m|grep "Mem" | awk '{print $2}' 13. netstat-an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s%s\n",$5,$6}' | sort 14.查看Apache的并发请求数及其TCP连接状态: netstat-n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和....,下面的命令就能解决啦. find /-name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}' CPU的数量(多核算多个CPU,cat/proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。 16 CPU负载 # cat /proc/loadavg 检查前三个输出值是否超过了系统逻辑CPU的4倍。 18 CPU负载 #mpstat 1 1 检查%idle是否过低(比如小于5%) 19 内存空间 # free 检查free值是否过低 也可以用 # cat/proc/meminfo 20 swap空间 # free 检查swap used值是否过高 如果swap used值过高,进一步检查swap动作是否频繁: # vmstat1 5 观察si和so值是否较大 21 磁盘空间 # df -h 检查是否有分区使用率(Use%)过高(比如超过90%) 如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录: # du -cks* | sort -rn | head -n 10 22 磁盘I/O负载 # iostat -x 1 2 检查I/O使用率(%util)是否超过100% 23 网络负载 # sar -n DEV 检查网络流量(rxbyt/s,txbyt/s)是否过高 24 网络错误 # netstat -i 检查是否有网络错误(drop fifocolls carrier) 也可以用命令:# cat/proc/net/dev 25 网络连接数目 # netstat -an | grep -E “^(tcp)” | cut -c68- | sort | uniq -c | sort -n 26 进程总数 # ps aux | wc -l 检查进程个数是否正常 (比如超过250) 27 可运行进程数目 # vmwtat 1 5 列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍 28 进程 # top -id 1 观察是否有异常进程出现 29 网络状态 检查DNS, 网关等是否可以正常连通 30 用户 # who | wc -l 检查登录用户是否过多 (比如超过50个) 也可以用命令:# uptime 31 系统日志 # cat /var/log/rflogview/*errors 检查是否有异常错误记录 也可以搜寻一些异常关键字,例如: # grep -ierror /var/log/messages # grep -ifail /var/log/messages 32 核心日志 # dmesg 检查是否有异常错误记录 33 系统时间 # date 检查系统时间是否正确 34 打开文件数目 # lsof | wc -l 检查打开文件总数是否过多 35 日志 # logwatch –print 配置/etc/log.d/logwatch.conf,将 Mailto 设置为自己的email 地址,启动mail服务(sendmail或者postfix),这样就可以每天收到日志报告了。 缺省logwatch只报告昨天的日志,可以用#logwatch –print –range all 获得所有的日志分析结果。 可以用# logwatch –print –detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。 36.杀掉80端口相关的进程 lsof -i:80|grep -v "ID"|awk '{print "kill -9",$2}'|sh 37.清除僵死进程。 ps -eal |awk '{ if ($2 == "Z") {print $4}}' | kill -9 38.tcpdump抓包 ,用来防止80端口被人攻击时可以分析数据 # tcpdump-c 10000 -i eth0 -n dst port 80 > /root/pkts 39.然后检查IP的重复数 并从小到大排序 注意 "-t\ +0" 中间是两个空格 # lesspkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk{'printf $1" "$2"\n"'} | sort -n -t\ +0 40.查看有多少个活动的php-cgi进程 netstat-anp | grep php-cgi | grep ^tcp | wc -l 41.查看系统自启动的服务 chkconfig--list | awk '{if ($5=="3:on") print $1}' 42.kudzu查看网卡型号 kudzu--probe --class=network 匹配中文字符的正则表达式:[\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*?/> 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 匹配首尾空白字符的正则表达式:^\s*|\s*$ 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^\s]* 评注:网上流传的版本功能很有限,上面这个基本可以满足需求 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注:表单验证时很实用 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7} 评注:匹配形式如 0511-4405222或 021-87888822 匹配腾讯QQ号:[1-9][0-9]{4,} 评注:腾讯QQ号从10000开始 匹配中国邮政编码:[1-9]\d{5}(?!\d) 评注:中国邮政编码为6位数字 匹配身份证:\d{15}|\d{18} 评注:中国的身份证为15位或18位 匹配ip地址:\d+\.\d+\.\d+\.\d+ 评注:提取ip地址时有用 匹配特定数字: ^[1-9]\d*$ //匹配正整数 ^-[1-9]\d*$ //匹配负整数 ^-?[1-9]\d*$ //匹配整数 ^[1-9]\d*|0$ //匹配非负整数(正整数 +0) ^-[1-9]\d*|0$ //匹配非正整数(负整数 +0) ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数+ 0) ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数+ 0) 评注:处理大量数据时有用,具体应用时注意修正 匹配特定字符串: ^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 ^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 ^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 ^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 评注:最基本也是最常用的一些表达式

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

CentOS6.5下使用LNMP架构安装nextcloud云盘

最近两年随着各大网盘纷纷关闭,百度云也早早的就开始限速,文件的安全也没有保障。 所以还不如自己搭建一个网盘。网上看了下,发现有一个nextcloud比较好用。 支持多平台客户端,支持分享,使用操作简单。支持插件扩展,文件预览,在线协作。 1.安装nginx wget http://nginx.org/download/nginx-1.10.3.tar.gz tar -zxf nginx-1.10.3.tar.gz && cd nginx-1.10.3 ./configure --prefix=/usr/local/data/nginx --user=nginx --group=nginx --with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module make && make install 2.安装配置php yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum --enablerepo=remi-php56 install php php-fpm php-mysql php-gd php-xml php-redis php-libs php-devel php-zlib php-mbstring nginx 和php-fpm 的运行用户这里使用nginx vim /etc/php-fpm.conf user = nginx group = nginx listen = 127.0.0.1:9000 env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp 3.安装mysql yum -y install mysql mysql-server service mysqld start 4.建库,授权 CREATE DATABASE nextcloud_db; GRANT ALL ON nextcloud_db.* TO 'nextcloud'@'%' IDENTIFIED BY 'nextcloud'; //注意一定要加 "%",否则无法让网络让任何人上传文件 FLUSH PRIVILEGES; 5.安装nextcloud wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.zip --no-check-certificate unzip nextcloud-10.0.2.zip mv nextcloud /usr/local/data/nginx/html /usr/local/data/nginx/html chown -R nginx.nginx 创建数据目录,这里建议数据目录不要和web目录放到一起 /usr/local/data/nginx/html/nextcloud/data 6.申请证书 为了网盘的安全,有必要使用https 证书,这里可以在阿里云后台申请免费的DV证书 7.配置nginx 创建虚拟主机文件 cd /usr/local/data/nginx/conf vim nextcloud.conf upstream php-handler { server 127.0.0.1:9000; } server { listen 80; server_name cloud.nextcloud.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name cloud.nextcloud.com; ssl_certificate /usr/local/data/nginx/conf/nextcloud.crt; ssl_certificate_key /usr/local/data/nginx/conf/nextcloud.key; #添加如下header主要为了安全 add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; #nextcloud代码目录 root /usr/local/data/nginx/html/nextcloud/; location = /robots.txt { allow all; log_not_found off; access_log off; } #为了支持user_webfinger app rewrite ^/.well-known/host-meta /public.php?service=host-meta last; rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; #这儿是为了支持日历和联系人,建议加上 location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } #设置上传文件的最大大小,php也得修改 client_max_body_size 512M; fastcgi_buffers 64 4K; # Disable gzip to avoid the removal of the ETag header gzip off; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; #重要的:将所有请求转发到index.php上 location / { rewrite ^ /index.php$uri; } #安全设置,禁止访问部分敏感内容 location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { deny all; } location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; } location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; #Avoid sending the security headers twice fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass php-handler; fastcgi_intercept_errors on; fastcgi_request_buffering off; } #安全设置,禁止访问部分敏感内容 location ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; index index.php; } # 添加js和css文件的缓存控制头 location ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200"; add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; access_log off; } location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; access_log off; } } vim nginx.conf include nextcloud.conf; service nginx start 8.配置php上传大小 vim /etc/php.ini max_execution_time = 0 post_max_size = 512M upload_max_filesize = 512M service php-fpm start 9.配置nextcloud 10.nextcloud 配置redis缓存 使用Redis做内存缓存可以有效提升程序运行速度。 curl -Ohttp://download.redis.io/releases/redis-3.2.8.tar.gz tar -zxvf redis-3.2.8.tar.gz cd redis-3.2.8/deps/ make geohash-int hiredis jemalloc linenoise lua cd .. make && make install cd utils/ ./install_server.sh 配置redis vim /etc/redis/6379.conf # requirepass foobared requirepass ExpvUwNOk9XRawC8 bind 192.168.40.200 启动 redis-server /etc/redis/6379.conf 配置nextcloud cd /usr/local/nginx/html/nextcloud/config vim config.php 'memcache.local' => '\OC\Memcache\Redis', 'redis' => array( 'host' => '192.168.40.200', 'port' => 6379, 'password' => 'ExpvUwNOk9XRawC8', ), 刷新页面 设置定时 */15 * * * * /usr/bin/php /usr/local/nginx/html/nextcloud/cron.php >/dev/null 本文转自 顶风走千里 51CTO博客,原文链接:http://blog.51cto.com/13505030/2064632

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

【系列6】使用Dockerfile创建带LAMP的Centos Docker镜像

LAMP值的Linux (操作系统)、ApacheHTTP服务器、MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的组合方案,一般很适合用来建立Web服务器环境。 ① 下载LAMP镜像: 下面介绍如何使用Docker来搭建一个包含LAMP组件的容器。 [root@docker1 ~]# docker search -s 10 lamp Flag --stars has been deprecated, use --filter=stars=3 instead INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/linode/lamp LAMP on Ubuntu 14.04.1 LTS Container 121 docker.io docker.io/tutum/lamp Out-of-the-box LAMP image (PHP+MySQL) 68 docker.io docker.io/greyltc/lamp a super secure, up-to-date and lightweight... 65 [OK] docker.io docker.io/reinblau/lamp [Deprecated]Dockerfile for PHP-Projects wi... 28 [OK] ...... [root@docker1 ~]# docker pull tutum/lamp Using default tag: latest Trying to pull repository docker.io/tutum/lamp ... latest: Pulling from docker.io/tutum/lamp 8387d9ff0016: Pull complete 3b52deaaf0ed: Pull complete 4bd501fad6de: Pull complete a3ed95caeb02: Pull complete 790f0e8363b9: Pull complete 11f87572ad81: Pull complete 341e06373981: Pull complete 709079cecfb8: Pull complete 55bf9bbb788a: Pull complete b41f3cfd3d47: Pull complete 70789ae370c5: Pull complete 43f2fd9a6779: Pull complete 6a0b3a1558bd: Pull complete 934438c9af31: Pull complete 1cfba20318ab: Pull complete de7f3e54c21c: Pull complete 596da16c3b16: Pull complete e94007c4319f: Pull complete 3c013e645156: Pull complete Digest: sha256:d332e7e97606ac6407b0ba9ae9e9383c89d7e04c6f4853332e98f7d326408329 ② 使用默认方式启动LAMP容器: 利用下载的镜像启动一个容器,并映射容器的8080端口和3306端口: [root@docker1 ~]# docker run -d -p 8080:80 -p 3306:3306 tutum/lamp ec3c2c2b04ddda0110f6488ac4c2b958e5e834613d1c637bbaba8f628c6e461e [root@docker1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ec3c2c2b04dd tutum/lamp "/run.sh" 4 seconds ago Up 3 seconds 0.0.0.0:3306->3306/tcp, 0.0.0.0:8080->80/tcp hungry_leavitt 使用curl命令测试,可以查看到默认的应用已经启动: [root@docker1 ~]# curl http://127.0.0.1:8080 返回的内容如下: <html> <head> <title>Hello world!</title> <style> body { background-color: white; text-align: center; padding: 50px; font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif; } #logo { margin-bottom: 40px; } </style> </head> <body> <img id="logo" src="logo.png" /> <h1>Hello world!</h1> <h2>MySQL Server version: 5.5.47-0ubuntu0.14.04.1</h2> </body> ③ 部署自己的PHP应用 默认的容器启动了一个helloword应用。读者可以基于此镜像,编辑Dockerfile来创建自定义LAMP应用镜像。 在宿主主机上创建新的工作目录LAMP: [root@docker1 ~]# mkdir LAMP [root@docker1 ~]# cd LAMP [root@docker1 LAMP]# touch Dockerfile 在php目录下里面创建Dockerfile文件,内容为 [root@docker1 LAMP]# vi Dockerfile FROM tutum/lamp:latest RUN rm -fr /app && git clone https://github.com/username/customapp.git /app #这里将https://github.com/username/customapp.git /app替换/app里面的文件 EXPOSE 80 3306 CMD ["/run.sh"] 创建镜像,命名为dockerpool/my-lamp-app: [root@docker1 LAMP]# docker build -t dockerpool/my-lamp-app . 利用新创建镜像启动容器,注意启动时候指定-d参数,让容器后台运行: [root@docker1 LAMP]# docker run -d -p 8080:80 -p 3306:3306 dockerpool/my-lamp-app 在本地主机上使用curl看一下自己的应用程序是不是已经正确启动: [root@docker1 LAMP]# curl http://127.0.0.1:8080/ ④ 在PHP程序中连接数据库 1. 在容器中访问MySQL数据库 下载的tutum/lamp镜像中的MySQL数据库已带有默认的root用户,本地连接可以不使用密码,所以在代码中访问数据库的实现非常简单: <?php $mysql = new mysqli("localhost", "root"); echo "MySQL Server info: ".$mysql->host_info; ?> 2. 在容器外访问MySQL数据库 默认的MySQL数据库不支持root用户远程登录,因此在容器外无法直接通过root用户访问MySQL数据库。 当第一次使用tutum/lamp镜像启动容器的时候,它会自动创建一个叫admin的MySQL用户,并生成一个随机密码,使用docker logs命令可以获取到这个密码: [root@docker1 LAMP]# docker logs ec3c2c2b04dd => An empty or uninitialized MySQL volume is detected in /var/lib/mysql => Installing MySQL ... => Done! => Waiting for confirmation of MySQL service startup => Creating MySQL admin user with random password => Done! ======================================================================== You can now connect to this MySQL Server using: mysql -uadmin -p8fMyJd458mqd -h<host> -P<port> Please remember to change the above password as soon as possible! MySQL user 'root' has no password but only allows local connections ======================================================================== 本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/2056639

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

RDO CentoS 7.1部署 kilo 问题及处理办法

OpenStack kilo debug 汇总 1, openstack kilo 部署 nova-network 问题 1 2 3 4 5 6 7 8 9 10 ERROR:ErrorappearedduringPuppetrun:192.168.102.26_nova.pp Error:Executionof '/usr/bin/novanetwork-createnovanetwork--fixed-range-v4192.168.88.0/28' returned1:ERROR(CommandError):Youmustprovideausernameoruser id via--os-username,--os-user- id , env [OS_USERNAME]or env [OS_USER_ID] Youwill find fulltrace in log /var/tmp/packstack/20150916-095300-hKJi_X/manifests/192 .168.102.26_nova.pp.log Pleasechecklog file /var/tmp/packstack/20150916-095300-hKJi_X/openstack-setup .log for more information Additionalinformation: *Timesynchronizationinstallationwasskipped.Pleasenotethatunsynchronized time onserverinstancesmightbeproblem for someOpenStackcomponents. *File /root/keystonerc_admin hasbeencreatedonOpenStackclienthost192.168.102.26.Tousethe command linetoolsyouneedto source the file . *ToaccesstheOpenStackDashboardbrowsetohttp: //192 .168.102.26 /dashboard . Please, find yourlogincredentialsstored in thekeystonerc_admin in yourhomedirectory. [root@openstack1~] #/usr/bin/novanetwork-createnovanetwork--fixed-range-v4192.168.88.0/28 1 2 3 4 5 6 7 解决办法: 查看错误日志,分析错误原因 vim /usr/lib/python2 .7 /site-packages/packstack/modules/puppet .py 104 #message=('ErrorappearedduringPuppetrun:%s\n%s\n' 105 #'Youwillfindfulltraceinlog%s'% 106 #(manifestfile,error,logpath)) 107 #raisePuppetError(message) 2, openstack kilo 中http 部署启动异常 1 2 3 4 5 6 7 --LogsbeginatTue2015-09-1517:18:58CST,endatWed2015-09-1610:08:03CST.-- Sep1610:07:59openstack1httpd[13483]:AH00526:Syntaxerroronline47of /etc/httpd/conf .d /nss .conf: Sep1610:07:59openstack1httpd[13483]:Invalid command 'NSSPassPhraseHelper' ,perhapsmisspelledordefinedbyamodulenotincluded Sep1610:07:59openstack1systemd[1]:httpd.service:mainprocessexited,code=exited,status=1 /FAILURE Sep1610:07:59openstack1 kill [13485]: kill :cannot find process "" Sep1610:07:59openstack1systemd[1]:httpd.service:controlprocessexited,code=exitedstatus=1 Sep1610:07:59openstack1systemd[1]:FailedtostartTheApacheHTTPServer. 1 2 3 4 5 解决办法: 移除httpdnss.conf模块参数 cd /etc/httpd/conf .d/ mv nss.confnss.conf.back servicehttpdrestart 3, openstack bridge 错误,导致云主机创建失败: 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 [root@openstack1conf.d] #tail-f/var/log/nova/nova-compute.log 2015-09-1610:10:31.70628885TRACEnova.compute.managerFile "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py" ,line445, in inner 2015-09-1610:10:31.70628885TRACEnova.compute.manager return f(*args,**kwargs) 2015-09-1610:10:31.70628885TRACEnova.compute.manager 2015-09-1610:10:31.70628885TRACEnova.compute.managerFile "/usr/lib/python2.7/site-packages/nova/network/linux_net.py" ,line1620, in ensure_bridge 2015-09-1610:10:31.70628885TRACEnova.compute.managerraiseexception.NovaException(msg) 2015-09-1610:10:31.70628885TRACEnova.compute.manager 2015-09-1610:10:31.70628885TRACEnova.compute.managerNovaException:Failedtoaddinterface:can'taddlotobridgebr100:Invalidargument 2015-09-1610:10:31.70628885TRACEnova.compute.manager 2015-09-1610:10:31.70628885TRACEnova.compute.manager 2015-09-1610:10:31.70628885TRACEnova.compute.manager 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherself.driver.update_dhcp(elevated,dev,network) 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherFile "/usr/lib/python2.7/site-packages/nova/network/linux_net.py" ,line1050, in update_dhcp 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherrestart_dhcp(context,dev,network_ref,fixedips) 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherFile "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py" ,line445, in inner 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcher return f(*args,**kwargs) 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherFile "/usr/lib/python2.7/site-packages/nova/network/linux_net.py" ,line1159, in restart_dhcp 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcher_execute(*cmd,run_as_root=True) 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherFile "/usr/lib/python2.7/site-packages/nova/network/linux_net.py" ,line1266, in _execute 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcher return utils.execute(*cmd,**kwargs) 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherFile "/usr/lib/python2.7/site-packages/nova/utils.py" ,line207, in execute 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcher return processutils.execute(*cmd,**kwargs) 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherFile "/usr/lib/python2.7/site-packages/oslo_concurrency/processutils.py" ,line233, in execute 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatchercmd=sanitized_cmd) 2015-09-1610:11:48.01321271TRACEoslo_messaging.rpc.dispatcherProcessExecutionError:Unexpectederror while running command . 1 2 3 4 5 6 7 8 9 10 11 12 13 解决办法: 修改vim /usr/lib/python2 .7 /site-packages/nova/network/linux_net .py程序 1612 if interface: 1613LOG.debug( 'Addinginterface%(interface)stobridge%(bridge)s' , 1614{ 'interface' :interface, 'bridge' :bridge}) 1615out,err=_execute( 'brctl' , 'addif' ,bridge,interface, 1616check_exit_code=False,run_as_root=True) 1617 if (erranderr!= "device%sisalreadyamemberofabridge;" 1618 "can'tenslaveittobridge%s.\n" %(interface,bridge)): 1619msg=_( 'Failedtoaddinterface:%s' )%err 1620 #raiseexception.NovaException(msg) 1621 else : 1622pass 本文转自 swq499809608 51CTO博客,原文链接:http://blog.51cto.com/swq499809608/1695234

资源下载

更多资源
Mario

Mario

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

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文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

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

用户登录
用户注册