首页 文章 精选 留言 我的

精选列表

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

Centos7单机部署ELK

一、简介 1.1介绍 ELK是三个开源工具组成,简单解释如下: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。 Kibana 也是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。 1.2场景分析 日志主要包括系统日志、应用程序日志和安全日志等等。运维人员和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。 通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。 这里采用开源实时日志分析ELK平台能够完美的解决我们上述的问题,当然也还有别的平台或者工具可以使用,这里只讨论ELK,官方网站:https://www.elastic.co 二、安装Elasticsearch 2.1安装jdk 1 2 3 4 # java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8 . 0_121 - b13) Java HotSpot(TM) 64 - Bit Server VM (build 25.121 - b13, mixed mode) 2.2安装Elasticsearch 1 2 3 4 5 # tar -zxvf elasticsearch-5.6.3.tar.gz # mv elasticsearch-5.6.3 /data/elasticsearch # cd elasticsearch/config/ # 备份配置文件 # cp elasticsearch.yml elasticsearch.yml.bak 编辑配置文件 1 2 3 4 5 6 7 8 9 # cat elasticsearch.yml | grep -v ^# cluster.name: elk - application node.name: node - 1 path.data: / data / elasticsearch / data path.logs: / data / elasticsearch / logs network.host: 172.16 . 220.248 http.port: 9200 discovery.zen.ping.unicast.hosts: [ "node-1" ] discovery.zen.minimum_master_nodes: 1 添加elasticsearch用户,不能使用root启动 1 2 3 # groupadd -g 1008 elasticsearch # useradd -g 1008 -u 1008 elasticsearch # chown -R elasticsearch:elasticsearch /data/elasticsearch/ 修改sysctl.conf文件 1 2 3 4 # vim /etc/sysctl.conf vm.max_map_count = 262144 # sysctl -p 修改/etc/security/limits.conf文件,修改打开文件句柄 1 2 3 4 * soft nofile 100000 * hard nofile 100000 * soft nproc 100000 * hard nproc 100000 添加hosts文件 1 2 # vim /etc/hosts 172.16 . 220.248 node - 1 启动 1 2 3 # su -s elasticsearch # cd /data/elasticsearch/bin # ./elasticearch & 查看是否启动 简单的curl测试 1 # curl http://172.16.220.248:9200 三、安装Logstash和filebeat filebeat用于在各个服务器上获取数据,发送到logstash上,再由logstash处理数据。 3.1安装logstash 1 2 # tar -zxvf logstash-5.6.3.tar.gz # mv logstash-5.6.3 /data/logstash 3.2安装filebeat 下载filebeat并启动,通过它来监听数据源文件的新增内容经过logstash处理后上传到es里面 1 2 3 4 # tar -zxvf filebeat-5.6.3-linux-x86_64.tar.gz # mv filebeat-5.6.3-linux-x86_64 /data/filebeat # cd /data/filebeat # cp filebeat.yml filebeat.yml.bak 编辑filebeat.yml文件 1 2 3 4 5 6 filebeat.prospectors: - input_type: log paths: - / var / log / message - log # 测试本机的一个log文件 output.logstash: hosts: [ "172.16.220.248:5044" ] 启动filebeat服务 1 2 # cd /data/filebeat # ./filebeat & 查看启动,filebeat没有监听端口,主要看日志和进程 1 2 # tialf logs/filebeat # ps -ef | grep filebeat filebeat监听的文件记录信息在/data/filebeat/data/registry 新建一个本地文件message-log,可以取几条本机系统的messages文件 3.3启动logstash 最后新建一个logstash的启动指定test.conf配置文件,内容如下: 1 2 3 4 5 6 7 8 9 10 11 input { beats { port = > "5044" } } output { elasticsearch { hosts = > "172.16.220.248:9200" } stdout { codec = > rubydebug } # 这是将输出打印在屏幕上,可以注释掉 } Logstash默认有input、filter、output三个区域,一般最少需要配置input和output即可! logstash的本身默认的logstash.yml配置文件选择不修改即可! 简单测试一下logstash不指定配置文件启动 1 2 # cd /data/filebeat/bin # ./logstash -e 'input { stdin {} } output {stdout {} }' 我们手动输入hello world,它也会输出 hello world 指定配置文件启动logstash 1 # ./logstash -f ../config/test.conf & 查看5044端口和9600端口是否开启 等待一会后应该会出现如下信息输出,这也就是test.conf里面最后一行定义输出到屏幕上 四、安装kibana 1 2 3 4 # tar -zxvf kibana-5.6.3-linux-x86_64.tar.gz # mv kibana-5.6.3-linux-x86_64 /data/kinbana # cd /data/kinbana/config/ # cp kibana.yml kibana.yml.bak 编辑kibana.yml配置文件 1 2 3 4 # vim kibana.yml server.port: 5601 server.host: "172.16.220.248" elasticsearch.url: "http://172.16.220.248:9200" 启动kinbana 1 2 # cd /data/kibana/bin # ./kibana & 查看端口 浏览器登入查看 点击create按钮后,然后点击上面的discover按钮,注意如果没数据的话,注意看看导入的时间@timestamp和现在的时间对比一下,kibana默认只显示最近15分钟的数据,如果超出15分钟请选择适当的时间,从kibana可以看到messages-log里面的15条数据都正常导入了。这就也完成我们的实现的第一个效果。但是这仅仅是把流程跑通了,接下来我们需要做的事情还有更多。注意只能先导入数据到es后才能在kibana创建索引。 五、获取Nginx access日志 Nginx日志格式在logstash的grok里面默认是没有的,需要我们手动配置,可以通过http://grokdebug.herokuapp.com/在线工具来判断配置是否正确。 5.1 在nginx服务器上安装filebeat 服务器: 172.16.200.160 1 2 3 4 # tar -zxvf filebeat-5.6.3-linux-x86_64.tar.gz # mv filebeat-5.6.3-linux-x86_64 /data/filebeat # cd /data/filebeat # cp filebeat.yml filebeat.yml.bak 修改filebeat配置文件 1 2 3 4 5 6 7 8 # cat filebeat.yml | grep -v ^$ | grep -v ^# | grep -v "#" filebeat.prospectors: - input_type: log paths: - /data/nginx/logs/160_access.log document_type: nginx_access output.logstash: hosts: ["172.16.220.248:5044"] 启动filebeat 1 # ./filebeat & 5.2 重新配置logstash启动配置文件 nginx日志格式,根据业务要求,我们这做了一些修改,比如增加cookie等,修改access.log日志时间格式等,这个会在另外的博客中写出来,会给出链接的。 nginx日志中添加cookie信息 nginx改变access.log中的时间格式 Nginx日志格式 1 2 3 4 5 6 7 8 log_format main '[$time_local] - $remote_addr:$remote_port - $upstream_addr $upstream_status $upstream_response_time - ' '"$request" $status $bytes_sent $request_time ' '"$http_referer" - "$http_user_agent" - ' '"$customerTag_cookie" - "$ym_cookie" - "$http_cookie" ' '"$http_x_forwarded_for"'; # 这里只是我们自己的格式,各位可以根据自己要求增删 grok使用表达式 可能我理解不是很到位,写的也比较复杂,我会把匹配对应项一一写出来,大家可以自己理解,然后为自己的项目配置 1 %{SYSLOG5424SD} - %{IPV4:clientip}:%{NUMBER:clientport} - %{IPV4:hostip}:%{NUMBER:itemport} %{INT:upstream_status} %{NUMBER:response_time} - \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}\" %{INT:status} %{INT:body_bytes_sent} %{NUMBER:request_time} %{QS:url} - %{QS:user_agent} - %{QS:customerTag} - %{QS:ym_traffic_session_id} - %{QS:all_cookies} %{IPV4:realip} grok匹配说明 1 %{SYSLOG5424SD} 时间格式 1 %{IPV4:clientip} 获取ip,clientip是自己命名的 1 %{NUMBER:clientport} NUMBER匹配数字 1 %{INT:upstream_status} INT整形 1 %{WORD:method} WORD单词 1 %{URIPATHPARAM:request} 获取请求内容request 1 %{QS:url} QS可以获取一段字符串 修改logstash启动配置文件 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 26 27 28 29 30 input { beats { port => "5044" } } filter { if [type] == "nginx_access" { grok { match => {"message" => "%{SYSLOG5424SD} - %{IPV4:clientip}:%{NUMBER:clientport} - %{IPV4:hostip}:%{NUMBER:itemport} %{INT:upstream_status} %{NUMBER:response_time} - \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}\" %{INT:status} %{INT:body_bytes_sent} %{NUMBER:request_time} %{QS:url} - %{QS:user_agent} - %{QS:customerTag} - %{QS:ym_traffic_session_id} - %{QS:all_cookies} %{IPV4:realip}"} } mutate { remove_field => "message" # 把message字段去掉,它会将上面单项获取的信息做个汇总,这样就重复了 } } } output { elasticsearch { hosts => "172.16.220.248:9200" } #stdout { codec => rubydebug } } 测试一下配置文件 1 ./logstash -t -f ../config/logstash.conf 重启logstash 不出问题elasticsearch 和kibana中就会有数据了

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

CentOS下mysql备份脚本(mysqldump)

#!/bin/bash #全备方式,一般在从机上执行,适用于小中型mysql数据库 #删除15天以前备份 #作者:fafu_li #时间:2015.08.10 source /etc/profile #加载系统环境变量 source ~/.bash_profile #加载用户环境变量 set -o nounset #引用未初始化变量时退出 #set -o errexit #执行shell命令遇到错误时退出 user="root" password="123456" host="localhost" port="3306" #需备份的数据库,数组 db=("test") #备份时加锁方式, #MyISAM为锁表--lock-all-tables, #InnoDB为锁行--single-transaction lock="--single-transaction" mysql_path="/usr/local/mysql" backup_path="${mysql_path}/backup" date=$(date +%Y-%m-%d_%H-%M-%S) day=15 backup_log="${mysql_path}/backup.log" #建立备份目录 if [ ! -e $backup_path ];then mkdir -p $backup_path fi #删除以前备份 find $backup_path -type f -mtime +$day -exec rm -rf {} \; > /dev/null 2>&1 echo "开始备份数据库:${db[*]}" #备份并压缩 backup_sql(){ dbname=$1 backup_name="${dbname}_${date}.sql" #-R备份存储过程,函数,触发器 mysqldump -h $host -P $port -u $user -p$password $lock --default-character-set=utf8 --flush-logs -R $dbname > $backup_path/$backup_name if [[ $? == 0 ]];then cd $backup_path tar zcpvf $backup_name.tar.gz $backup_name size=$(du $backup_name.tar.gz -sh | awk '{print $1}') rm -rf $backup_name echo "$date 备份 $dbname($size) 成功 " else cd $backup_path rm -rf $backup_name echo "$date 备份 $dbname 失败 " fi } #循环备份 length=${#db[@]} for (( i = 0; i < $length; i++ )); do backup_sql ${db[$i]} >> $backup_log 2>&1 done echo "备份结束,结果查看 $backup_log" du $backup_path/*$date* -sh | awk '{print "文件:" $2 ",大小:" $1}'

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

centos 6.5下KVM环境搭建

一、操作系统配置 1. 使用root权限登录 2. 修改内核模式为兼容内核启动 vim /boot/grub/grub.conf主要修改default=1 3. 关闭selinux 两种方式:1.使用setenforce 0命令:立即生效,重启后失效。 2.修改配置文件,vim /etc/selinux/config:重启后生效。主要修改SELINUX=disabled注:可以使用getenforce命令查看selinux状态 4.关闭防火墙 service iptables stop chkconfig iptables off service iptables status二、虚拟化环境搭建 1.查看cpu是否支持全虚拟化 egrep ‘(vmx|svm)’ /proc/cpuinfo有显示输出,表示支持 2.安装必要的安装包 安装包 作用 qumu-kvm KVM核心模块 libvirt 虚拟机管理工具,对虚拟机进行操作的集成各种接口库函数的中间件 python-virtinst 记录创建VM的xml文件 bridge-utils 网桥支持工具 virt-viewer 图形查看功能 virt-manager 安装图形界面管理虚拟机,virt-manager通过libvirt实现对虚拟机的操作 检查这些包是否安装 rpm -q qemu-kvm libvirt python-virtinst virt-viewer virt-manager bridge-utils 安装这些包 yum -y install qemu-kvm libvirt python-virtinst virt-viewer virt-manager bridge-utils三、查看虚拟化环境 1.重启libvirt服务: service libvirtd restart 2.查看虚拟化环境: virsh -c qemu:///system list 3.查看kvm模块支持:lsmod | grep kvm 4.查看虚拟工具版本: virsh –version virt-install –version ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm qemu-kvm -version四、虚拟网桥配置为了使KVM的虚拟机可以使用同一网段内网,配置虚拟网桥 1.首先关闭NetworkManager(此服务会使配置无效) service NetworkManager stop chkconfig NetworkManager off service NetworkManager status 2.创建网桥br0 3.修改网卡文件及网桥文件 网卡文件: 网桥文件: 4.重启网络服务 service network restart(必须在关闭了NetworkManager后) 5.查看网络信息 ifconfig brctl show至此KVM环境搭建完毕五、搭建VNC使用VNC工具远程可视化操作 1.查看是否已经安装 rpm -q vnc vnc-server 2.安装VNC yum -y install vnc vnc-server 3.设置VNC密码 首先:vncserver 然后:vncpasswd,输入两次密码注:如果在使用vncserver命令时没有反应或者提示未安装(反正我碰到了),则使用yum install *vncserver*命令安装一些包,就可以了。 4.修改配置文件配置桌面类型: vim ~/.vnc/xstartup配置账号,分辨率,连接方式 vim /etc/sysconfig/vncservers 5.配置防火墙,允许VNC连接 本文章开始已经关闭了防火墙。 若未关闭,vnc server监听从5900开始,若防火墙缺省则不允许连接这些端口,所以需要在防火墙文件里配置。 此处对应用户账号配置只打开了5901端口。 重启防火墙:service iptables restart(若防火墙不设置关闭的话) 6.设置服务自启动 chkconfig vncserver on 7.windows主机客户端vnc viewer:1代表的就是5901端口至此VNC搭建完毕 本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1895863,如需转载请自行联系原作者

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

CentOS中 mount 命令的用法

mount 的命令参数有很多,下面只介绍下一些常用的参数: mount 的命令格式: mount [-t] [-o] device dir 例如要将镜像挂载到指定文件夹 /mnt/cdrom下: mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom 1.-t 指定挂载文件系统的类型,通常不需要指定。mount 命令会自动选择正确的类型。其中常用的文件系统类型有以下: 光盘或光盘镜像:iso9660 Windows NT ntfs文件系统:ntfs DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Mount Windows文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs 2.-o options 主要用来描述设备或档案的挂载方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备 iocharset:指定访问文件系统所用字符集 3.device 该处是指要挂接(mount)的设备。 4.dir 该处是选择设备在系统上的挂接点即:mount point。 如果需要linux下需要查看更多关于mount 命令,使用命令: man mount。

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

CentOS 7 Docker Swarm: pending解决

在Docker加入Swarm集群之后,跨主机容器不能正常通信,查看docker info看到 swarm:pending 原因是因为swarm node无法接收到leader传来的指令,就是防火墙问题引起. 解决: 1 2 yum-y install iptable.service iptables-save 然后编辑/etc/sysconfig/iptables,删除 1 2 -AINPUT-jREJECT--reject-withicmp-host-prohibited -AFORWARD-jREJECT--reject-withicmp-host-prohibited 执行 service docker restart 本文转自 rong341233 51CTO博客,原文链接:http://blog.51cto.com/fengwan/1955526

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

CentOS离线安装htop源码包

在htop官网下载源码包,下载地址如下(本人下载的是2.0.2): http://hisham.hm/htop/releases/ 用工具上传到需要安装的服务器上,本人使用的是WinSCP 在服务器上解压源码包:tar -zxvf htop-2.0.2.tar.gz 跳转到源码包目录:cd htop-2.0.2 生成Makefile文件并指定后续安装时的安装路径:./configure –prefix=/usr/local/htop-2.0.2/ 编译源代码:make 安装:make install 跳转到安装的目录的bin目录:cd /usr/local/htop-2.0.2/bin 试运行htop:./htop 编辑profile文件:vi /etc/profile 移动到文件末尾,按Insert键进入编辑模式,增加以下内容: export PATH=$PATH:/usr/local/htop-2.0.2/bin 按Esc退出编辑模式,输入:wq保存并退出编辑器 使修改后的profile文件生效:source /etc/profile 查看系统当前PATH变量的值:echo $PATH 运行htop:htop 安装期间遇到的问题 使用configure生成Makefile文件失败,报错信息如下(只截取错误部分): checking for addnwstr in -lncursesw6... no checking for addnwstr in -lncursesw... no checking for addnwstr in -lncurses... no configure: error: You may want to use --disable-unicode or install libncursesw. 显示尝试configure增加–disable-unicode参数:./configure –prefix=/usr/local/htop-2.0.2/ –disable-unicode 如果出现以下报错信息,需要安装libncurses: configure: error: missing libraries: libncurses libncurses的下载地址如下,安装过程可以参考这次离线安装(如果是无法连接互联网的环境):http://ftp.gnu.org/gnu/ncurses/ 安装之后如果依然提示: configure: error: You may want to use --disable-unicode or install libncursesw. 可以尝试步骤1增加–disable-unicode参数 总结 虽然是一次在RedHat上离线安装htop的源码包,但是其实并未使用RedHat上特有的指令,也适用于其他Linux/Unix系统上离线安装源码包。

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

CentOS下修改OpenSSH,22端口

OpenSSH,22端口,内部敏感服务对外开放存在风险,容易引起安全问题;百度站长学院建议修改!修改OpenSSH,22端口的二种方法如下: 第一种: 01假如要改Linux SSH的默认端口(22),那么你只要修改:/etc/ssh/sshd_config中Port 22,这里把22改成自己要设的端口就行了,不过千万别设和现已有的端口相同哦,以防造成未知后果。 02假如要限制SSH登陆的IP,那么可以如下做: 先:修改/etc/hosts.deny,在其中加入sshd:ALL 然后:修改:/etc/hosts.allow,在其中进行如下设置:sshd:192.168.0.241 这样就可以限制只有192.168.0.241的IP通过SSH登陆上LINUX机器了。当然在做为服务器方面,我都不装gnome和KDE的,而且很多东东都不装,这样增加安全系数。 第二种: 首先修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,修改为如下: Port 22 Port 50000 然后保存退出 执行/etc/init.d/sshd restart 这样SSH端口将同时工作与22和50000上。 现在编辑防火墙配置:vi /etc/sysconfig/iptables 启用50000端口。 执行/etc/init.d/iptables restart 现在请使用ssh工具连接50000端口,来测试是否成功。如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。 之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。自己不会修改不要去测试哟

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

CentOS下SSH常用操作命令

目录操作: Shift+inset /*粘贴选项,插入所复制*/ rm -rf mydir /*删除mydir目录*/ cd mydir /*进入mydir目录*/ cd - /*回上一级目录*/ cd .. /*回父目录,中间有空格*/ cd ~ /*回根目录*/ mv tools tool /*把tools目录改名为tool */ ln -s tool bac /*给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了*/ cp -a tool /home/vpser/www /*把tool目录下所有文件复制到www目录下 */ 文件操作: rm go.tar /* 删除go.tar文件 */ find mt.cgi /* 查找文件名为mt.cgi的文件 */ df –h /* 查看磁盘剩余空间,好像没这个必要,除非你太那个了 */ 解压缩: tar xvf wordpress.tar /* 解压tar格式的文件 */ tar -tvf myfile.tar /* 查看tar文件中包含的文件 */ tar cf toole.tar tool /* 把tool目录打包为toole.tar文件 */ tar cfz vpser.tar.gz tool /* 把tool目录打包且压缩为vpser.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */ tar jcvf /var/bak/www.tar.bz2 /var/www/ /*创建.tar.bz2文件,压缩率高*/ tar xjf www.tar.bz2 /*解压tar.bz2格式*/ gzip -d ge.tar.gz /* 解压.tar.gz文件为.tar文件 */ unzip phpbb.zip /* 解压zip文件,windows下要压缩出一个.tar.gz格式的文件还是有点麻烦的 */ 下载: wget http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz /*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */ wget -c http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz /* 继续下载上次未下载完的文件 */ 转载请注明出处:VPS侦探 http://www.vpser.net 进程管理: ps -aux /*ps 进程状态查询命令*/ ps命令输出字段的含义: [list] [*]USER,进程所有者的用户名。 [*]PID,进程号,可以唯一标识该进程。 [*]%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。 [*]%MEM,进程使用内存的百分比。 [*]VSZ,进程使用的虚拟内存大小,以K为单位。 [*]RSS,进程占用的物理内存的总数量,以K为单位。 [*]TTY,进程相关的终端名。 [*]STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。 [*]START,进程开始运行时间。 [*]TIME,进程使用的总CPU时间。 [*]COMMAND,被执行的命令行。 [/list] ps -aux | grep nginx /*在所有进程中,查找nginx的进程*/ kill 1234 /*1234为进程ID,即ps -aux 中的PID*/ killall nginx /*killall 通过程序的名字,直接杀死所有进程,nginx为进程名*/ Vim操作: 移动类的: h/j/k/l: 左/下/上/右 移一格 w : 向后词移动 (前面加数字移动多少个词) b : 向前词移动 (前 面加数字移动多少个词) e : 向后移到词末 ge : 向前移到词末 $ <End> : 行末 0 <Home> : 行首 tx : 向右查找本行的x并移到那儿(大写时向左) 33G : 移到文件的第33行 gg : 文件首行 G : 文件尾行 33% : 文件的33%处 H/M/L : 屏幕的首/中/尾行 zt/zz/zb : 当前行移到屏幕的首/中/底部 跳转: " : 回到跳转来的地方 CTRL-O : 跳到一个 “较老” 的地方 CTRL-I <Tab> : 则跳到一个 “较新” 的地方 查找: / : 向下查找(后加关键字) ? : 向上查找(后加关键字) n : 下一条符合的记录 编辑: i : 转换到插入模式 x : 删除当前字符 . : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜) u : 撤销操作 CTRL-R : 重做 p : 将删除的字符插入到当前位置(put) 退出保存: :q : 退出 :q! : 不保存退出 ZZ : 保存后退出 :e! : 放弃修改重新编辑 目录: 1.BasicInstructions/基本 2.wget/下载工具 3.Crontab/定时任务 4.tar/tar.gz/压缩文件 5.查看文件大小 cd[目录名]转换路径 cd .. 返回上级目录 ls显示当前目录下所有文件 rm[-r]-f[][文件名]删除文件,加[-r]可以删除文件下所有子文件,如rm -rf [abc]删除abc文件夹及文件夹下的所有文件 tar -[解压下载的压缩包] unzip[文件名]解压文件 cp -rpf .A/* B 将A文件夹中的所有文件拷贝到其上级目录B中 wget(最爽的一个命令 在linux下可以使用该工具快速地从网络上下载所需要的文件) 1.BasicInstructions基本操作命令 通常来说,使用”$[Instructions]-help”可以获得以下各个命令[instructions]的帮助,包含其参 数列表的定义。 -ls列出当前文件夹下所有内容 $ls-o列出当前文件夹中所有内容,含详细信息,但不列出group $ls-l同上,含group信息 $ls-a列出当前文件夹中所有内容,包含以”.”开头的文件 $ls-t按更改时间排序 $ls-v按版本 -cd [dir] 进入文件夹 cd.. 退出当前文件夹,返回上级目录 -pwd 显示当前路径 -mkdir [dir] 新建文件夹 -chmod更改文件/文件夹权限 $chmod [Mode] [dir],其中Mode形如”755″或”777″等。 $chmod [Mode] [file] $chmod -R [Mode] [dir],递归形式,即将目标文件夹内所有文件均改变权限 Mode还有另一种表达方式,”755″即为”-rwxr-xr-x”,不列举了。 -rm [file]删除文件/文件夹 $rm-f [file]强行删除,忽略不存在的文件,无提示 $rm-r [file]递归删除所有内容 $rm -rf 删除文件夹 -cp拷贝 $cp [options] [source] [destination] 其中[options]可以为-f(强行拷贝)或-r(递归拷贝) -mv重命名或移动 $mv[options][source][destination] [options]常用:-f(强行移动/重命名),-i(移动/重命名前尝试),-u(更新) 例如 $mvwwwroot/cgi-bin.将/cgi-bin 目录移动到当前目录下 $mvcronfile.txtmyfile.txt将cronfile.txt重命名为myfile.txt cp -rpf .A/* B 将A文件夹中的所有文件拷贝到其上级目录B中 2.wget下载工具 wget是一种非交互式的网络文件下载工具,在linux下可以使用该工具快速地从网络上下载 所需要的文件而不需要经由本 wget[参数列表]URL 最简单的用法: $wgethttp://targetdomain.com/file.tar wget的常用参数:-t[nuberoftimes]:尝试次数,当wget无法与服务器建立连接时,尝试连接多少次。比 如”-t120″表示尝试120次。当这一项为”0″的时候,指定尝试无穷多次直到连接成功为止, 这个设置非常有用,当对方服务器突然关机或者网络突然中断的时候,可以在恢复正常后继 续下载没 有传完的文件;-c:断点续传,这也是个非常有用的设置,特别当下载比较大的文件的时候,如果中途意外中断,那么连接恢复的时候会从上 次没传完的地方接着传,而不是又从头开始,使用这一项需要远程服务器也支持断点续传,一般UNIX/linux的Web/FTP服务器都支 持断点续传;-T[numberofseconds]:超时时间,指定多长时间远程服务器没有响应就中断连接,开始 下一次尝试。比如”-T120″表示如果120秒以后远程服务器没有发过来数据,就重新尝试连 接。如果网络速度比较快,这个时间可以设置的短些,相反,可以设置的长一些,一般最多 不超过900,通常也不少于60,一般120左右比较合适;-w[numberofseconds]:在两次尝试之间等待多少秒,比如”-w100″表示两次尝试之间等 待100秒;-nd:不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里;-x:与”-nd”设置刚好相反,创建完整的目录结构, 例如”wget-ndhttp://www.gnu.org/”, 实际的目录结构一级一级建下去,直到所有的文件都传完为止;-nH:不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到 当前目录 下;-r:递归下载,在本录结构;-l[depth]:下载远程服务器目录结构的深度,例如”-l5″下载目录深度小于或者等于5以 内的目录结构或者文件; -m:做站点镜像时的选项,如果你想做一个站点的镜像,使用这个选项,它将自动设定 其他合适的选项以便于站点镜像;-np:只下载目标站点指定目录及其子目录的内容。这也是一个非常有用的选项,我们假 设某个人的个人主页里面有一个指向这个站点其他人个人主页的连接,而我们只想下载这个 人的个人主页,如果不设置这个选项,甚至-有可能把整个站点给抓下来,这显然是我们通 常不希望的;-http-user=username-http-passwd=password:如果Web服务器需要指定用户名和口令, 用这两项来设定;-O将数据写入文件中。 3.Crontab定时执行任务 在DreamHost系统下,通过Shell可以建立自己的crontab.具体使用如下: 使用支持shell登录的终端(如fterm或putty),地址栏输入username@qiran.org:22即可以SSH 方式登录至服务器. 常用的crontab命令: crontab-l显示所有现存cronjob. crontab-r删除当前cronjobs. crontab-e编辑当前”crontabfile”.DH推荐使用nano 注意你的crontab包含所有的cronjobs,每个cron一行,断行结尾.一个正常的cron如下所 示: 452***/home/user/script.pl 第一个数字是每小时的第几分钟, 第二个数字是每天的第几小时, 第三个数字是每月的第几天, 第四个数字是每年的第几月, 第五个数字是每周的第几天. 使用方式例如: 32 * * * * : 表示每小时的第32分钟. 12,42 * * * * : 表示每小时的第12及第42分钟两次 */15 */2 * * *: 表示0:00, 0:15, 0:30, 0:45, 2:00, 2:15, 2:30, … 43 18 * * 7: 表示每个周日的6:43pm运行命令行. 在DreamHost下使用nano编辑完文件后,使用ctrl+o保存,ctrl+x退出编辑。 4.tar命令 tar命令的使用方法如下: tar[参数列表][文件名] 参数列表: -c生成新的备份,并同时覆盖旧的备份文件 -x从备份文件中解压缩 -t列出备份文件内的文件目录 -v显示所有被操作文件列表 -f在指定位置生成备份 -u将不存在于备份中的文件,或将已经被更改的文件加入该备份中。 举例说明: tar cvf filename.tar /*制作备份*/ tar cvf tarfile.tar ./filename /*将filename的文件备份到tarfile.tar里面*/ tar tvf filename.tar /*列出tar文档的内容*/ tar xvf filename.tar /*从tar文档中导出文件*/ tar zxpvf filename.tar.gz /*从tar.gz文档中导出文件*/ tar zxvf filename.tar.gz /*同上*/ tar xvf tarfile.tar ./filename /*导出tar文件中的单个文件*/ tar -xzf filename.tar.gz 解压 打包文件供下载 将目录./www打包到文件www.tar.gz QUOTE: tar czvf www.tar.gz ./www 或者直接更简单的 zip ./www 将当前目录下所有.php文件打包并压缩到文件bak.tar.gz 5.查看文件夹大小 du -s discuz 按KB du -sh discuz 按M SSH常用命令linux系统 2009-10-12 21:56:37 阅读205 评论0 字号:大中小 rm -rf mydir /* 删除mydir目录 */ mkdir [dir] 新建文件夹 cd mydir /* 进入mydir目录 */ cd - /* 回上一级目录 */ cd ~ /* 回根目录 */ mv tools tool /* 把tools目录改名为tool */ ln -s tool bac /* 给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了 */ cp -a tool /home/leavex/www /* 把tool目录下所有文件复制到www目录下 */ rm go.tar /* 删除go.tar文件 */ find mt.cgi /* 查找文件名为mt.cgi的文件 */ df –h /* 查看磁盘剩余空间,好像没这个必要,除非 你太那个了 */ tar xvf wordpress.tar /* 解压tar格式的文件 */ tar -tvf myfile.tar /* 查看tar文件中包含的文件 */ gzip -d ge.tar.gz /* 解压.tar.gz文件为.tar文件 */ unzip phpbb.zip /* 解压zip文件,windows下要压缩出一个.tar.gz格式的文件还是有点麻烦的 */ tar cf toole.tar tool /* 把tool目录打包为toole.tar文件 */ tar cfz geek.tar.gz tool /* 把tool目录打包且压缩为geek.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */ wget http://www.sevenapart.com/download/wp.tar.gz /*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */ wget -c http://www.eightapart.com/undone.zip /* 继续下载上次未下载完的文件 */ tar cfz geek.tar.gz tool /* 把tool目录打包且压缩为geek.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */ 还有一些是VIM里要用到的,也罗列出来吧! 移动类的: h/j/k/l: 左/下/上/右 移一格 w : 向后词移动 (前面加数字移动多少个词) b : 向前词移动 (前面加数字移动多少个词) e : 向后移到词末 ge : 向前移到词末 $ : 行末 0 : 行首 tx : 向右查找本行的x并移到那儿(大写时向左) 33G : 移到文件的第33行 gg : 文件首行 G : 文件尾行 33% : 文件的33%处 H/M/L : 屏幕的首/中/尾行 zt/zz/zb : 当前行移到屏幕的首/中/底部 跳转: ” : 回到跳转来的地方 CTRL-O : 跳到一个 “较老” 的地方 CTRL-I : 则跳到一个 “较新” 的地方 查找: / : 向下查找(后加关键字) ? : 向上查找(后加关键字) n : 下一条符合的记录 编辑: i : 转换到插入模式 x : 删除当前字符 . : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜) u : 撤销操作 CTRL-R : 重做 p : 将删除的字符插入到当前位置(put) 退出保存: :q : 退出 :q! : 不保存退出 ZZ : 保存后退出 :e! : 放弃修改重新编辑 退出SSH后,继续运行! #nohup wget http://www.phpv.net/file.tar.gz & wget是一个Linux环境下用于从World Wide Web上提取文件的工具,这是一个GPL许 可证 下的自由软件,其作者为Hrvoje Niksic 。wget支持HTTP和 FTP协议 ,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条件 的文 件并将其下载到本地硬盘上;如果必要,wget将恰当地转换页面中的超级连接以在 本地 生成可浏览的镜像。由于没有交互式界面,wget可在后台运行,截获并忽略 HANGUP信号 ,因此在用户推出登录以后,仍可继续运行。通常,wget用于成批量地下载 Internet网 站上的文件,或制作远程网站的镜像。 语法 : wget [options] [URL-list] URL地址格式说明:可以使用如下格式的URL: http://host[:port]/path 例如: http://fly.cc.fer.hr/ ftp://ftp.xemacs.org/pub/xemacs/xemacs-19.14.tar.gz ftp://username:password@host/dir/file 在最后一种形式中,以URL编码形式为FTP主机提供了用户名和密码(当然,也可以 使用 参数提供该信息,见后)。 参数说明: wget的参数较多,但大部分应用只需要如下几个常用的参数: -r 递归;对于HTTP主机,wget首先下载URL指定的文件,然后(如果该文 件是 一个HTML文档的话)递归下载该文件所引用(超级连接)的所有文件(递归深度由 参数 -l指定)。对FTP主机,该参数意味着要下载URL指定的目录中的所有文件,递归方 法与 HTTP主机类似。 -N 时间戳:该参数指定wget只下载更新的文件,也就是说,与本地目录中 的对 应文件的长度和最后修改日期一样的文件将不被下载。 -m 镜像:相当于同时使用-r和-N参数。 -l 设置递归级数;默认为5。-l1相当于不递归;-l0为无穷递归;注意, 当递 归深度增加时,文件数量将呈指数级增长。 -t 设置重试次数。当连接中断(或超时)时,wget将试图重新连接。如 果指 定-t0,则重试次数设为无穷多。 -c 指定断点续传功能。实际上,wget默认具有断点续传功能,只有当你使 用别 的ftp工具下载了某一文件的一部分,并希望wget接着完成此工作的时候,才需要 指定 此参数。 使用举例: wget -m -l4 -t0 http://oneweb.com.cn/ 将在本地硬盘建立http://oneweb.com.cn/的镜像,镜像文件存入当前目录下一个 名为 oneweb.com.cn的子目录中(你也可以使用-nH参数指定不建立该子目录,而直接在 当前 目录下建立镜像的目录结构),递归深度为4,重试次数为无穷(若连接出现问题 , wget将坚韧不拔地永远重试下去,知道任务完成!) 另外一些使用频率稍低的参数如下: -A acclist / -R rejlist: 这两个参数用于指定wget接受或排除的文件扩展名,多个名称之间用逗号隔开。例 如, 假设我们不想下载MPEG视频影像文件和.AU声音文件,可使用如下参数: -R mpg,mpeg,au 其它参数还有: -L 只扩展相对连接,该参数对于抓取指定站点很有用,可以避免向宿主 主机 的其他目录扩散。例如,某个人网站地址为:http://www.xys.org/~ppfl/,使用 如下 命令行: wget -L http://www.xys.org/~ppfl/ 则只提取该个人网站,而不涉及主机www.xys.org上的其他目录。 -k 转换连接:HTML文件存盘时,将其中的非相对连接转换成为相对连接。 -X 在下载FTP主机上的文件时,排除若干指定的目录 另外,下面参数用于设置wget的工作界面: -v 设置wget输出详细的工 作信息。 -q 设置wget不输出任何信息。 如果我们已经在一个HTML文档(或普通文本文档)中存储了所要提取的文件的连接 ,可 以让wget直接从该文件中提取信息,而不用在命令行中提供URL地址,参数格式为 : -i filename 地址文件也可以不是HTML文档,例如,一个普通的文本文件,其中有需要下载的 URL列 表即可。 我们可以用以下技巧提高下载速度:由于Linux是一个多任务系统,我们可以同时 运行 多个wget进程以提高下载速度,例如,先下载某主页文件(index.html),然后将 该文 件所列出的所有地址分别用一个独立的wget进程进行下载。 至于其他的参数,可参考wget的man手册页,命令为: man wget 用wget创建网站的镜像 使用shell中的wget命令行创建网站镜像的方法。此方法将所有文件(包括图片、CSS等)都下载下来,并把网页中的链接改为相对链接,这样就避免了镜像中的链接仍旧指向原来的网站而不能正常地工作了。 此方法只需一条命令行: $ wget -mk -w 20 http://www.example.com/ 命令行中的20代表间隔20秒下载一个文件,这样可以避免网站的访问过于频繁。你可以调小点,但当你是备份别人的站时,还是为别人的服务器考虑下吧。 利用SSH(Shell)来备份和恢复MySQL数据库的方法 例如: 数据库参数为:: MySQL地址:mysql.dh.net MySQL名称:mysql_dbname MySQL用户:mysql_dbuser MySQL密码:mysql_dbpass 我要把数据库备份为bak.sql 步骤: 同样,使用windows系统自己带的telnet或者去下载一个putty来,登陆以后,一路cd到自己觉得合适的目录下(确认当前目录可写). 输入下面的命令: CODE:mysqldump -h mysql.dh.net -p mysql_dbname -u mysql_dbuser >bak.sql 然后回车,提示你输入数据库登陆密码,输入完密码后回车,OK! 就把数据库备份到当前目录下了 —————————- 如何恢复bak.sql数据库::: 输入下面命令后回车 CODE:mysql -h mysql.dh.net -p mysql_dbname -u mysql_dbuser 提示你输入密码,输入密码后然后回车 会出现MySQL操作提示符号 然后输入下面的命令 CODE:source bak.sql 请先确认bak.sql这个文件再当前目录下 回车.OK,恢复ing….. 注意:数据库比较大的话,需要会需要点时间(425MB的DZ数据库,我用了2分钟) 实际上,任何支持SSH并且没有屏蔽MySQL/MySQLDUMP/SOURCE命令的空间,都可以用本方法.99%不存在乱码现象,即便数据库版本不一样!! 如果你还有其他的支持远程MySQL的空间的话(一般的cPanel空间的数据库都支持远程的),你可以登陆到DH的SSH以后,远程连接到你的数据库,然后再DH的服务器上给你的远程数据库恢复数据或者备份数据

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

CentOS下内存单位转换

一,内存单位转换 Byte字节的意思 B是一个电脑存储的基本单位(字节); 1个英文字符是1个字节,也就是1B; 1个汉字为2个字符,也就是2B; 1024B=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB 二,命令df 命令语法 df [选项] [参数] 命令描述 df命令用于显示已挂载磁盘的总容量,使用容量,剩余容量等,可以不加任何参数,默认显示单位为KB 命令选项 -h:使用合适的单位显示 -i:查看inodes使用情况 -k:以KB为单位显示 -m:以MB为单位显示 df 命令示例 默认情况以K为单位显示 [root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/cl-root 18655232 1164384 17490848 7% / devtmpfs 493156 0 493156 0% /dev tmpfs 504196 0 504196 0% /dev/shm tmpfs 504196 6868 497328 2% /run tmpfs 504196 0 504196 0% /sys/fs/cgroup /dev/sda1 201380 119360 82020 60% /boot tmpfs 100840 0 100840 0% /run/user/0 选项-h,以合适的单位显示,例如GB [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/cl-root 18G 1.2G 17G 7% / devtmpfs 482M 0 482M 0% /dev tmpfs 493M 0 493M 0% /dev/shm tmpfs 493M 6.8M 486M 2% /run tmpfs 493M 0 493M 0% /sys/fs/cgroup /dev/sda1 197M 117M 81M 60% /boot tmpfs 99M 0 99M 0% /run/user/0 选项-i,查看inodes使用情况,如使用到100%,即使磁盘空间有富余,也会提示磁盘空间已满。 [root@localhost ~]# df -i 文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点 /dev/mapper/cl-root 9332736 28208 9304528 1% / devtmpfs 123289 389 122900 1% /dev tmpfs 126049 1 126048 1% /dev/shm tmpfs 126049 474 125575 1% /run tmpfs 126049 16 126033 1% /sys/fs/cgroup /dev/sda1 102400 330 102070 1% /boot tmpfs 126049 1 126048 1% /run/user/0 选项-k,-m,分别表示以KB和MB为单位显示 [root@localhost ~]# df -k |grep -v tmpfs 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/cl-root 18655232 1164232 17491000 7% / /dev/sda1 201380 119360 82020 60% /boot [root@localhost ~]# df -m |grep -v tmpfs 文件系统 1M-块 已用 可用 已用% 挂载点 /dev/mapper/cl-root 18218 1137 17082 7% / /dev/sda1 197 117 81 60% /boot 上述示例说明 第一列 为分区的名字; 第二列 为该分区的总容量; 第三列 为使用容量; 第四列 为剩余容量; 第五列 为使用容量的百分比; 第六列 为挂载点; 三,du命令 命令语法 du [选项] [参数] 命令描述 du命令用来查看某个目录或文件所占空间大小。默认显示单位KB。 命令选项 -a:=all,显示全部文件与目录的大小 -b:以byte(B)为单位显示内容 -k:以KB为单位显示内容 -m:以MB为单位显示内容 -h:系统自动调节单位显示内容 -c:最后加总 -s:只列出总和 du命令示例 不用选项 [root@localhost ~]# du /root 4 /root/.ssh 4 /root/dir 0 /root/222 0 /root/dd 56 /root 选项sh,用于查看一个指定目录或文件的大小 [root@localhost ~]# du -sh /root //使用du命令查看 /root 目录 56K /root [root@localhost ~]# du -sh /etc/passwd //使用du命令查看passwd文件 4.0K /etc/passwd [root@localhost ~]# ls -lh /etc/passwd //使用ls命令查看passwd文件 -rw-r--r--. 1 root root 1.3K 10月 31 09:18 /etc/passwd 说明: 这里用ls和du分别查看passwd文件的使用大小,du命令显示的4KB(默认情况下,不到4KB以4KB显示,因为一个块是4KB,以后会学到),而ls命令显示的是1.3KB(真实大小)。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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等操作系统。

用户登录
用户注册