linux日常运维命令
- 格式:doc
- 大小:57.50 KB
- 文档页数:8
Linux运维工程师工作手册释放内存:syncecho3>/proc/sys/vm/drop_cachesLinux查看Dell服务器型号命令:dmidecode|grep"ProductName"查看系统负载:cat/proc/loadavg1/意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而283是代表此时的进程总数10904到此为止,最后创建的一个进程ID;系统装好后,要做的事如下:关闭防火墙Selinux:vim/etc/selinux/config把SELINUX=enforcing改成SELINUX=disabled更改主机名:vim/etc/sysconfig/network修改主机名,不要用localhost添加hosts主机记录vim/etc/hosts中,在后面,添加自己的主机名创建0-9a-z目录foriin`seq09`{a..z};domkdir-p$i;done:测试硬盘性能工具:iozone监视服务器每少上下文切换数次工具:Nmon很不错的性能监视工具占用内存大小前10的进程ps-eocomm,size--sort-size|head-10占用cp u使用前10的进程ps-eocomm,pcpu--sort-pcpu|head-10一、Apache服务优化:21.配置cronolog进行日志轮询22.错误页面优雅显示2文件压缩功能3缓存功能45.更改apache的默认用户5模式,提升并发数可以达到2000-500057.屏蔽apache版本等敏感信息6目录文件权限设置root,目录755,文件6446 9.开启增加连接数6防盗链功能811.禁止目录Index812.禁止用户覆盖重载813.关闭CGI914.避免使用.htaccess文件分布式配置文件9 的安全模块916.正确途径取得源代码,勤打apache补丁10 日志授予root700权限1018.系统内核参数优化1019.禁止PHP解析指定站点的目录1020.使用tmpfs文件系统替代频繁访问的目录11 21尽可能减少HTTP请求数1122使用CDN做网站加速12查看你的服务器网络连接状态netstat-n|awk'/^tcp/{++S$NF}END{forainSprinta,Sa}'◆CLOSED:无连接是活动的或正在进行◆LISTEN:服务器在等待进入呼叫◆SYN_RECV:一个连接请求已经到达,等待确认◆SYN_SENT:应用已经开始,打开一个连接◆ESTABLISHED:正常数据传输状态◆FIN_WAIT1:应用说它已经完成◆FIN_WAIT2:另一边已同意释放◆ITMED_WAIT:等待所有分组死掉◆CLOSING:两边同时尝试关闭◆TIME_WAIT:另一边已初始化一个释放◆LAST_ACK:等待所有分组死掉ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT这项的数值;Linux下高并发的Squid服务器,TCPTIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死;通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT套接字数量;查看系统本地可用端口极限值cat/proc/sys/net/ipv4/ip_local_port_range寻找恶意IP并用iptables禁止掉netstat-an|grep:80|grep-v|awk'{print$5}'|sort|awk-F:'{print$1,$4}'|uniq-c|awk'$1>50{print$1,$2}'备份单个数据库mysqldump-u用户–p’密码’--default-character-set=latin1数据库名>备份文件名数据库默认编码是latin1普通备份:mysqldump-uroot-p'oldboy123'oldboy>/server/bak/压缩备份:mysqldump-uroot-p'oldboy123'oldboy|gzip>/server/bak/设置字符集备份:mysqldump-uroot-p'oldboy123'oldboy--default-character-set=gbk|gzip>/server/bak/执行结果:rootoldboy~mkdir/server/bak-prootoldboy~mysqldump-uroot-p'oldboy123'oldboy>/server/babackup/bak/rootoldboy~mysqldump-uroot-p'oldboy123'oldboy>/server/bak/rootoldboy~mysqldump-uroot-p'oldboy123'oldboy|gzip>/server/bak/rootoldboy~ls-l/server/bak/total8-rw-r--r--1rootroot1991Apr900:51-rw-r--r--1rootroot801Apr900:51mysqldump在做啥mysqldump实际上就是把数据从mysql库里以逻辑的sql语句的形式导出;备份的数据过滤掉注释:rootoldboy~egrep-v"\|--|^$"/server/bak/DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;LOCKTABLES`test`WRITE;INSERTINTO`test`VALUES1,'zhaoyue',2,'jesse',4,'elain',5,'wodi',6,'yingsui',7,' zhangyang',8,'zaixiangpan',9,'',10,'钥佺敺瀛,11,'鎴;<==这里是乱码,是因为导出时的格式没加字符集,而系统当前字符集又是格式,一般恢复到数据库里会正常,只是系统外查看不正常而已;另外insert是批量插入的方式,这样在恢复时效率很高;UNLOCKTABLES;提示:看到了吧,就是我们曾经插入的表和数据;rootoldboy~mysqldump-uroot-p'oldboy123'oldboy--default-character-set=gbk>/server/bak/rootoldboy~egrep-v"\|--|^$"/server/bak/DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;LOCKTABLES`test`WRITE;INSERTINTO`test`VALUES1,'zhaoyue',2,'jesse',4,'elain',5,'wodi',6,'yingsui',7,' zhangyang',8,'zaixiangpan',9,'',10,'老男孩',11,'我';<==;其他乱码是当初插入时就有问题的;UNLOCKTABLES;备份多个库rootoldboy~mysqldump-uroot-p'oldboy123'-Boldboymysql--default-character-set=gbk>/server/bak/提示:-B参数是关键,表示接多个库;※※※※※生产环境常用-B,;regardedasdatabasenames.'USEdb_name;'willbeincludedintheoutput.参数说明:该参数用于导出若干个数据库,在备份结果中会加入USEdb_name和CREATEDATABASE`db_name`;-B后的参数都将被作为数据库名;该参数比较常用;当-B后的数据库列全时同-A参数;请看-A的说明;备份单个表mysqldump-u用户名-p数据库名表名>备份的文件名mysqldump-uroot-poldboytest>执行结果:rootoldboy~mysqldump-uroot-p'oldboy123'oldboytest--default-character-set=gbk>/server/bak/提示:无-B参数,库oldboy后面就是test表了;备份多个表rootoldboy~mysqldump-uroot-p'oldboy123'oldboytestett--default-character-set=gbk>/server/bak/rootoldboy~egrep-v"\|--|^$"/server/bak/DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;LOCKTABLES`test`WRITE;INSERTINTO`test`VALUES1,'zhaoyue',2,'jesse',4,'elain',5,'wodi',6,'yingsui',7,' zhangyang',8,'zaixiangpan',9,'',10,'老男孩',11,'我';UNLOCKTABLES;DROPTABLEIFEXISTS`ett`;CREATETABLE`ett``id`int11DEFAULTNULLENGINE=MyISAMDEFAULTCHARSET=gbk;LOCKTABLES`ett`WRITE;UNLOCKTABLES;备份数据库结构不包含数据mysqldump-uroot-d-p'oldboy'oldboyoldboy>-d只备份表结构rootoldboy~mysqldump-uroot-p'oldboy123'-doldboy>/tmp/rootoldboy~egrep-v"\|--|^$"/tmp/DROPTABLEIFEXISTS`ett`;CREATETABLE`ett``id`int11DEFAULTNULLENGINE=MyISAMDEFAULTCHARSET=gbk;DROPTABLEIFEXISTS`test`;CREATETABLE`test``id`int4NOTNULLAUTO_INCREMENT,`name`char20NOTNULL,PRIMARYKEY`id`ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;更多用法可以执行mysqldump–help查询;有关mysql和mysqldump同学们要详细总结; 5恢复数据库source命令恢复进入mysql数据库控制台,mysql-uroot-pmysql>use数据库然后使用source命令,后面参数为脚本文件如这里用到的.sqlmysql>source这个文件是系统路径;rootoldboybakmysql-uroot-p'oldboy123';or\g....skip...Type'help;'or'\h''\c'toclearthecurrentinputstatement.mysql>useoldboyDatabasechangedmysql>showtables;+------------------+|Tables_in_oldboy|+------------------+|ett||test|+------------------+2rowsinsetsecmysql>droptablestest;QueryOK,0rowsaffectedsecmysql>systemls.mysql>source./<==还是用第一版没加字符集的备份,就是备份后查看乱码的备份; QueryOK,0rowsaffectedsec...skip...QueryOK,0rowsaffectedsec Q...skip...QueryOK,0rowsaffectedsecmysql>selectfromtest;+----+-------------+|id|name|+----+-------------+|1|zhaoyue||2|jesse||4|elain||5|wodi||6|yingsui||7|zhangyang||8|zaixiangpan||9|||10||<==乱码|11||+----+-------------+10rowsinsetsecmysql>setnamesgbk;QueryOK,0rowsaffectedsecmysql>selectfromtest;+----+-------------+|id|name|+----+-------------+|1|zhaoyue||2|jesse||4|elain||5|wodi||6|yingsui||7|zhangyang||8|zaixiangpan||9|||10|老男孩|<==仍然是正常的,就是说备份不加字符集导出,将来恢复不会影响恢复的数据,但是备份后查看文件会乱码;|11|我|+----+-------------+10rowsinsetsecmysql命令恢复标准mysql-uoldboy-p'oldboy'oldboy<mysql>systemmysql-uroot-p'oldboy123'oldboy<<==导入的是备份时加字符集的版本;mysql>selectfromtest;+----+-------------+|id|name|+----+-------------+|1|zhaoyue||2|jesse||4|elain||5|wodi||6|yingsui||7|zhangyang||8|zaixiangpan||9|||10|老男孩|<==因为上文source导入时已经setnamesgbk了,所以此处不是乱码;|11|我|+----+-------------+10rowsinsetsecMyISAM引擎备份由于MyISAM引擎为表级锁,因此,在备份时需要防止在备份期间数据写入而导致不一致,所以,在备份时使用--lock-all-tables加上读锁mysqldump-A-F-B--lock-all-tables|gzip>/data/backup/$date+%F.特别提示:有关MyISAM和InnoDB引擎的差别和在工作中如何选择,在前面的文章已经详细讲解过了,这里就不在讲了;InnoDB引擎备份InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项--single-transaction进行备份:mysqldump-A-F-B--single-transaction|gzip>/data/backup/$date+%F.特别注意:1--single-transaction仅适用于InnoDB引擎;生产环境mysqldump备份命令mysqldump–uroot–p–S/data/3306/–default-character-set=gbk–single-transaction–F–Boldboy|gzip>/server/backup/mysql_$date+%F.:注-F:刷新bin-log参数,数据库备份完以后,会刷新bin-log增量备份:更新bin-log:mysqladmin–uroot–p–S/data/3306/flush-logs如生成文件把生成的最新文件,CP到/var/backup/把二进制的日志生成sql语句:mysqlbinlog>如果有多个库,我们应该用-d来指定恢复单个库mysqlbinlog–doldboy>当然对于库也要分库备,否则恢复还是麻烦还原数据:先还原全备,再还原增备先还原全备:mysql–uroot–p<还原增备:mysql–uroot–p<恢复增备的时候,需要把误操作的语句删掉后,再还原,否则,还原后,还是会和误操作后一样基于时间点的增量恢复mysqlbinlog–start-datetime=’2011-03-1902:58:54’—stop-datetime=’2011-03-1903:22:44’–r上面语句将显示02:58:54-----2011-03-1903:22:44时间段的binlog,并输出到拽定开始时间到文件结束mysqlbinlog–start-datetime=’2011-03-1902:58:54’–doldboy–r这个语句只有开始时间,那么就是从2011-03-1902:58:54时刻到日志结尾,lodboy数据库的binlog输出到基于位置点的增量恢复指定开始位置和结束位置mysqlbinlog–start-position=510–stop-position=1312–r输出初始位置510,结束位置1312的所有binlog日志到注意:结尾的日志点细弱特殊不会被包含;即输出1312pos以前的binlog;指定开始位置到文件结束mysqlbinlog–start-position=510–r输出初始位置510,结束位置到文件结尾的所有binlog到;当然,你也可以指定库名输出binlog;如:mysqlbinlog--start-position=510–r–doldboy从文件开头到指定结束位置mysqlbinlog--stop-position=954-r输出从文件开始位置,到954位置截止的所有binlog掌握和查找打开的文件lsof列出打开的文件实用程序会显示打开的文件名;其选项仅显示某些进程,只有一个进程的某些文件描述符,或只有某些网络连接网络连接使用文件描述符,就像普通文件一样,lsof也显示这些;使用ps–ef确定了可疑进程后,输入以下命令:lsof-s-ppid服务器最大设置的连接数:151mysql>showvariableslike'max_connections';+-----------------+-------+|Variable_name|Value|+-----------------+-------+|max_connections|151|+-----------------+-------+1rowinsetsec服务器响应的最大连接数:152mysql>showglobalstatuslike'Max_used_connections';|Variable_name|Value|+----------------------+-------+|Max_used_connections|152|+----------------------+-------+1rowinsetsec查看服务器key_buffer_size数值:4mysql>showvariableslike'key_buffer_size';+-----------------+-----------+|Variable_name|Value|+-----------------+-----------+|key_buffer_size|4|+-----------------+-----------+1rowinsetsec查看服务器现在使用的key_buffer_size使用情况:key_read_requests:4key-reads:830525mysql>showglobalstatuslike'key_read%';|Variable_name|Value|+-------------------+-----------+|Key_read_requests|4||Key_reads|830525|+-------------------+-----------+2rowsinsetsec计算索引未命中的概率:key_cache_miss_rate=key_reads/key_read_requests100%达到%以下即每1000个请求有一个直接读硬盘以下都很好,如果key_cache_miss_rae在%以下的话,则说明key_buffer_size分配得过多,可以适当减少;Key_blocks_unused表示未使用的缓存簇数,Key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过度索引,把缓存占满了;比较理想的设置是:key_blocks_used/key_blocks_unused+key_blocks_used100%=80%mysql>showglobalstatuslike'key_blocks_u%';+-------------------+--------+|Variable_name|Value|+-------------------+--------+|Key_blocks_unused|317003||Key_blocks_used|6439|+-------------------+--------+2rowsinsetsec临时表:当执行语句时,关于已经被创造了的隐含临时表的数量,我们可以用如下命令查询其具体情况:mysql>showglobalstatuslike'created_tmp%';+-------------------------+--------+|Variable_name|Value|+-------------------------+--------+|Created_tmp_disk_tables|343326||Created_tmp_files|172||Created_tmp_tables|675795|+-------------------------+--------+3rowsinsetsec每次创建临时表时,created_tmp_tables都会增加,如果是在磁盘上创建临时表,created_tmp_disk_tables也会增加;created_tem_files表示MYSQL服务创建的临时文件数,比较理想的配置是:Created_Tmp_disk_tables/Created_tmp_tables100%<=25%比如上面服务器Created_Tmp_disk_tables/Created_tmp_tables100%=50%,比较差了;我们再看一下MYSQL服务器对临时表的配置:mysql>showvariableswhereVariable_namein'tmp_table_size','max_heap_table_size';+---------------------+----------+|Variable_name|Value|+---------------------+----------+|max_heap_table_size|||tmp_table_size||+---------------------+----------+2rowsinsetsec只有16M以下的临时表才能全部放在内存中,超过的就会用到硬盘临时表;打开表的情况Open_tables表示打开表的数量,Opend_tables表示打开过的表数量,我们可以用如下命令查看其具体情况:mysql>showglobalstatuslike'open%tables%';+---------------+--------+|Variable_name|Value|+---------------+--------+|Open_tables|512||Opened_tables|234200|+---------------+--------+2rowsinsetsec如果Opened_tables数量过大,说明配置中tables_cacehMYSQL之后这个值叫做table_open_cache的值可能太小;我们查询一下服务器table_cache值:mysql>showvariableslike'table_open_cache';+------------------+-------+|Variable_name|Value|+------------------+-------+|table_open_cache|614|+------------------+-------+1rowinsetsec比较合适的值为:Open_tables/Opened_tables100%>=85%Open_tables/table_open_cache100%<=95%进程使用情况如果我们在MYSQL服务器的配置文件中设置了thread-cache_size,当客户端断开之时,服务器处理此客户请求的线程将会缓存起来以响应下一个客户而不是销毁前提是缓存数未达上限;Threads_created表示创建过的线程数,我们可以用如下命令查看:mysql>showglobalstatuslike'Thread%';+-------------------+-------+|Variable_name|Value|+-------------------+-------+|Threads_cached|7||Threads_connected|2||Threads_created|2124||Threads_running|2|+-------------------+-------+4rowsinsetsec如果发现Threads_created的值过大的话,表明MYSQL服务器一直在创建线程,这也是比较耗费资源的,可以适当增大配置文件中的thread_cache_size的值;查询服务器thread_cahce_size配置,如下所示:mysql>showvariableslike'thread_cache_size';+-------------------+-------+|Variable_name|Value|+-------------------+-------+|thread_cache_size|8|+-------------------+-------+1rowinsetsec查询缓存它涉及的主要有两个参数,query_cache_size是设置MYSQL的Query_Cache大小,query_cache_size是设置使用查询缓存的类型,我们可以用如下命令查看其具体情况:mysql>showglobalstatuslike'qcache%';+-------------------------+----------+|Variable_name|Value|+-------------------------+----------+|Qcache_free_blocks|130||Qcache_free_memory|||Qcache_hits|||Qcache_inserts|2391041||Qcache_lowmem_prunes|0||Qcache_not_cached|671718||Qcache_queries_in_cache|676||Qcache_total_blocks|1798|+-------------------------+----------+8rowsinsetsec我们再查询一下服务器上关于query-cache的配置命令如下:mysql>showvariableslike'query_cache%';+------------------------------+----------+|Variable_name|Value|+------------------------------+----------+|query_cache_limit|1048576||query_cache_min_res_unit|4096||query_cache_size|||query_cache_type|ON||query_cache_wlock_invalidate|OFF|+------------------------------+----------+5rowsinsetsec排序使用情况它表示系统中对数据进行排序时所使用的Buffer,我们可以用如下命令查看:mysql>showglobalstatuslike'sort%';+-------------------+-----------+|Variable_name|Value|+-------------------+-----------+|Sort_merge_passes|84||Sort_range|393425||Sort_rows|2||Sort_scan|324383|+-------------------+-----------+4rowsinsetsecSort_merge_passes包括如下步骤:MYSQL首先会尝试在内存中做排序,使用的内存大小由系统变量sort_buffer_size来决定,如果它不够大则把所有的记录都读到内存中,而MYSQl则会把每次在内存中排序的结果存到临时文件中,等MYSQL找到所有记录之后,再把临时文件中的记录做一次排序;这次再排序就会增加sort_merge_passes;实际上,MYSQL会用另一个临时文件来存储再次排序的结果,所以我们通常会看到sort_merge_passes增加的数值是建临时文件数的两倍;因为用到了临时文件,所以速度可能会比较慢,增大sort_buffer_size会减少sort_merge_passes和创建临时文件的次数,但盲目地增加sort_buffer_size并不一定能提高速度;文件打开数open_files我们在处理MYSQL故障时,发现当open_files大于open_files_limit值时,MYSQL数据库就会发生卡住的现象,导致APACHE服务器打不开相应页面;这个问题大家在工作中应注意,我们可以用如下命令查看其具体情况:mysql>showglobalstatuslike'open_files';+---------------+-------+|Variable_name|Value|+---------------+-------+|Open_files|901|+---------------+-------+1rowinsetsecmysql>showvariableslike'open_files_limit';+------------------+-------+|Variable_name|Value|+------------------+-------+|open_files_limit|1185|+------------------+-------+1rowinsetsec比较适合的设置是:open_files/open_files_limit100%<=75%带宽的大小通常我们在架构网站的时候,会设定一些目标,比如网站每天要能承受千万PV的访问量,这时我们要估算一下大概需要多大的带宽;计算带宽大小主要的有2个主要指标峰值流量和页面大小,我们先做出必要的假设:1.峰值流量是平均流量的3倍;2.每次访问平均的页面大小是100KB左中;如果1000万PV的访问量在一天内平均分布,每秒大约120次访问,如果按平均每次访问页面大小是100KB字节计算,120次访问总计大约就是12000KB;字节的单位是Byte,而带宽单位是bit,它们之间的关系是1Byte=8bit,所以12000kByte大致就相当于96000kbit,也就是90Mbps的样子;实际上,我们的网站必须能在峰值流量时保持正常运行状态,所以按照假设的峰值流量计算,真实带宽的需求应该在270Mbps左右;当然,这个结论是根据前面提到的两点假设得出来的,具体值则需要根据公司实际情况来计算;数据库服务器是重中之重,因为网站的瓶颈问题大多出在数据库身上;现在一般的中小网站多使用MYSQL数据库;一般而言,使用MYSQL数据库的时候,我们应该配置为一个主从一方多从结构,主数据库服务器使用InnoDB表结构,从数据服务器使用MyiSAM表结构;这样充分发挥它们各大自的优势,而且这样的方从分离了读写操作,降低了读操作的压力;我们还可以设定一个专门的从服务器作为备份服务器,有时候还需要借助mc ached/'target='_blank'>Memcached之类的第三方软件,以便适应更大访问量的要求;跟踪进程:找其中一个CPU100%的php-cgi进程的PID,用以下命令跟踪一下:strace-p10747如果屏幕显示:select7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeoutselect7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeoutselect7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeoutselect7,6,6,,{15,0}=1out6,left{15,0}poll{fd=6,events=POLLIN},1,0=0Timeout那么,就可以确定是file_get_contents导致的问题了;lsoflsof-i:80显示占用80端口的进程lsof-p1457显示进程号为1457的进程所打开的文件查看服务器型号:dmidecode-ssystem-product-name。
linux 服务器常用操作命令1.基本命令- pwd:查看当前所在目录- ls:列出当前目录下的文件和文件夹- cd:切换目录- touch:创建文件- mkdir:创建新的目录- rm:删除文件或目录- cp:复制文件或目录- mv:重命名文件或目录,或移动文件或目录到其他位置- cat:查看文件内容- grep:在文件中搜索指定的字符串- find:查找文件并执行相应操作- chmod:修改文件和目录的权限- chown:修改文件和目录的所有者- top:实时查看系统的资源使用情况- ps:显示当前正在运行的进程信息2.文件操作- echo:输出文本内容到终端或文件- head:显示文件的前几行- tail:显示文件的后几行- less:按页查看文件内容- wget:下载文件- tar:打包和解压文件- gzip:压缩文件- unzip:解压缩文件- file:查看文件类型- scp:在本地和远程服务器之间进行文件传输- sftp:通过SSH协议在本地和远程服务器之间进行文件传输3.网络相关- ifconfig:显示网络接口配置信息- ping:测试与指定主机的连通性- netstat:显示网络连接、路由表和网络接口信息- ssh:建立安全的远程登录连接- telnet:建立与远程主机的非安全连接- nslookup:域名解析工具- traceroute:显示数据包在网络上的传输路径- ifup/ifdown:启用/禁用网络接口- iptables:配置防火墙规则4.系统管理- uname:显示系统信息- whoami:显示当前用户- id:显示用户信息- date:显示系统日期和时间- uptime:显示系统的运行时间和平均负载- free:显示内存的使用情况- df:显示磁盘空间的使用情况- du:查看文件和目录的磁盘使用情况- kill:关闭指定进程- reboot:重启系统- shutdown:关闭系统5.用户和权限管理- useradd:创建用户- userdel:删除用户- passwd:修改用户密码- su:切换用户- sudo:以超级用户权限执行命令- visudo:配置sudo的访问权限- chattr:修改文件属性- addgroup:创建用户组- delgroup:删除用户组- chmod:修改文件和目录的权限- chown:修改文件和目录的所有者6.日志管理- tail:实时显示日志文件的最后几行内容- cat:显示整个日志文件的内容- grep:在日志文件中搜索指定的字符串- systemctl:管理系统服务- journalctl:查看系统日志7.进程管理- ps:显示当前正在运行的进程信息- top:实时查看当前系统进程的资源占用情况- kill:终止指定进程- nice:调整进程的优先级- nohup:在后台运行命令,不受终端断开影响- renice:修改进程的优先级这些是Linux服务器常用的操作命令,能够实现大部分日常操作和系统管理任务。
linux系统管理员常用命令Linux是一种开源的操作系统,广泛应用于服务器和个人电脑。
作为一名Linux系统管理员,熟悉并掌握常用的命令是必不可少的。
本文将介绍一些常用的Linux系统管理员命令,帮助管理员更好地管理和维护系统。
1. ls命令:ls命令用于列出当前目录下的文件和文件夹。
通过ls命令,管理员可以查看目录结构,了解文件的权限和属性。
2. cd命令:cd命令用于切换当前工作目录。
管理员可以使用cd命令进入不同的目录,方便进行文件操作和管理。
3. pwd命令:pwd命令用于显示当前工作目录的路径。
管理员可以使用pwd命令确认当前所在位置,避免操作错误。
4. mkdir命令:mkdir命令用于创建新的目录。
管理员可以使用mkdir命令创建新的文件夹,方便组织和管理文件。
5. rm命令:rm命令用于删除文件和目录。
管理员可以使用rm命令删除不再需要的文件和目录,释放存储空间。
6. cp命令:cp命令用于复制文件和目录。
管理员可以使用cp命令将文件和目录复制到指定位置,方便备份和迁移。
7. mv命令:mv命令用于移动文件和目录,也可以用于重命名文件和目录。
管理员可以使用mv命令将文件和目录移动到其他位置,或者修改文件和目录的名称。
8. cat命令:cat命令用于查看文件的内容。
管理员可以使用cat命令查看文件的文本内容,或者将多个文件合并成一个文件。
9. grep命令:grep命令用于在文件中搜索指定的字符串。
管理员可以使用grep命令快速定位文件中包含特定内容的行。
10. chmod命令:chmod命令用于修改文件和目录的权限。
管理员可以使用chmod命令设置文件和目录的读、写、执行权限,保护系统的安全性。
11. chown命令:chown命令用于修改文件和目录的所有者。
管理员可以使用chown命令将文件和目录的所有权转移给其他用户或用户组。
12. top命令:top命令用于实时监控系统的运行状态。
【Linux运维】查看⽹络连接状态信息之netstat和ss命令详解⼀、netstat 常⽤命令详解通过man netstat可以查看netstat的帮助信息:netstat 命令:⽤于显⽰各种⽹络相关信息,如⽹络连接,路由表,接⼝状态,⽆效连接,组播成员等等。
netstat命令是net-tools软件包中的⼀员[root@web129 ~]# netstat 选项选项:-a: 列出系统中所有⽹络连接,包括已经连接的⽹络服务、监听的⽹络服务和Socket套接字-t: 列出TCP数据-u: 列出UDP数据-l: 列出正在监听的⽹络服务(不包含已经连接的⽹路服务)-n: ⽤端⼝显⽰服务,⽽不⽤服务名-p: 列出该服务的进程ID(PID)⽰例⼀:netstat -tlunp[root@web129 ~]# netstat -tlunpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 000.0.0.0:220.0.0.0:* LISTEN 1490/sshdtcp 00127.0.0.1:250.0.0.0:* LISTEN 1989/mastertcp6 00 :::80 :::* LISTEN 852/httpdtcp6 00 :::22 :::* LISTEN 1490/sshdtcp6 00 ::1:25 :::* LISTEN 1989/masterudp 00127.0.0.1:3230.0.0.0:* 524/chronydudp6 00 ::1:323 :::* 524/chronyd[root@web129 ~]#实例⼆:使⽤netstat -an[root@web129 ~]# netstat -anActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 000.0.0.0:220.0.0.0:* LISTENtcp 00127.0.0.1:250.0.0.0:* LISTENtcp 00192.168.19.129:22192.168.19.1:1108 ESTABLISHEDtcp 00192.168.19.129:22192.168.19.1:2301 ESTABLISHEDtcp6 00 :::80 :::* LISTENtcp6 00 :::22 :::* LISTENtcp6 00 ::1:25 :::* LISTENudp 00127.0.0.1:3230.0.0.0:*udp 00192.168.19.129:3936685.199.214.101:123 ESTABLISHEDudp 00192.168.19.129:3906085.199.214.100:123 ESTABLISHEDudp6 00 ::1:323 :::*Active UNIX domain sockets (servers and established)Proto RefCnt Flags Type State I-Node Pathunix 2 [ ACC ] STREAM LISTENING 25859 /run/docker/libnetwork/2607d31c4b65ff68cf08c24cc6d5e4687dad654f9ec402872e98f8dcc79f448f.sockunix 2 [ ACC ] STREAM LISTENING 24960 private/rewrite执⾏结果,除了上⽂的参数之外,还有Socket内容:⼆、ss命令详解ss是Socket Statistics的缩写ss命令可以⽤来获取socket统计信息,它可以显⽰和netstat类似的内容。
linux相关的运维基础常识Linux运维基础常识Linux操作系统是一种类Unix操作系统,广泛应用于服务器、工作站等领域。
以下是一些Linux运维的基础常识:1. 常见的Linux发行版有Ubuntu、Debian、RedHat、CentOS等,不同发行版有不同的安装和配置方式。
2. Linux系统中文件和目录以“/”开头,例如“/var/log/messages”表示根目录下的var目录下的log目录下的messages文件。
3. Linux系统中,不同类型的文件有不同的权限,可以分为读、写、执行三种权限,可以通过“ls -l”命令查看文件权限。
4. Linux系统中,可以通过系统日志来查看系统的运行状态和故障信息,常见的系统日志有/var/log/messages、/var/log/syslog等。
5. Linux系统中,常用的命令有cd(切换目录)、ls(查看文件目录)、mkdir(创建目录)、rm(删除文件或目录)、vim(编辑文本文件)等。
6. Linux系统中,常见的网络命令有ping(测试网络连通性)、ifconfig(查看系统网络配置)、iptables(设置防火墙规则)等。
7. Linux系统中,常见的服务命令有service(管理系统服务)、chkconfig(设置系统服务启动顺序)、top(查看系统状态)等。
8. Linux系统中,常见的安装和管理软件的方法有yum(RedHat系列发行版)、apt-get(Debian系列发行版)等。
9. Linux系统中,安全是非常重要的,可以通过设置防火墙、安装安全软件、关闭不必要的端口等方式来提高系统的安全性。
以上是一些基础的Linux运维常识,了解这些常识对于新手来说是非常重要的。
同时,也需要不断学习掌握更多的技能和技巧,才能更好地管理和维护Linux系统。
linux运维工作常用操作命令Linux操作系统因其稳定性和安全性,已经成为了互联网行业中最为广泛使用的操作系统之一。
随着企业信息化程度不断提升,需要专业的Linux运维工程师来负责管理和维护服务器的日常运行。
本文将介绍一些常用的Linux运维工作操作命令,供大家参考。
1. pwd命令:用于显示当前工作目录的路径。
2. cd命令:用于切换工作目录,例如:cd /home/admin。
进入/home/admin目录。
3. ls命令:用于列出目录下所有的文件和目录。
4. mkdir命令:用于创建一个新的目录,例如:mkdir 。
5. rmdir命令:用于删除一个空的目录,例如:rmdir 。
6. cp命令:用于复制文件或目录,例如:cp -rf /tmp/home /home。
7. mv命令:用于移动文件或目录,例如:mv /tmp/home /home。
8. rm命令:用于删除文件或目录,例如:rm -rf /tmp/home。
9. chmod命令:用于修改文件或目录的权限,例如:chmod 777 /tmp。
10. chown命令:用于修改文件或目录的所有者,例如:chown admin /tmp。
11. chgrp命令:用于修改文件或目录的所属组,例如:chgrp user /tmp。
12. df命令:用于显示文件系统的可用空间和已用空间。
13. du命令:用于显示目录或文件所占用的磁盘空间。
14. top命令:用于显示系统的资源使用情况,包括CPU、内存等。
15. ps命令:用于显示当前系统中正在运行的进程。
16. kill命令:用于关闭指定进程,例如:kill PID。
17. netstat命令:用于显示网络连接状态和信息。
18. ifconfig命令:用于显示和配置网络接口信息。
19. ping命令:用于测试网络连接是否正常,例如:ping .baidu。
20. ssh命令:用于远程登录到其他Linux服务器。
常用的linux命令文档常用的Linux命令文档Linux操作系统是一种非常强大和灵活的操作系统,广泛应用于服务器和嵌入式系统中。
作为一名Linux系统管理员或者开发者,掌握常用的Linux 命令是至关重要的。
本文旨在提供一份常用的Linux命令文档,涵盖了从基本命令到高级命令的应用和使用。
1. 文件和目录操作命令1.1 ls命令:列出当前目录下的文件和子目录。
1.2 cd命令:切换当前工作目录。
1.3 mkdir命令:创建新的目录。
1.4 cp命令:复制文件或目录。
1.5 mv命令:移动文件或目录。
1.6 rm命令:删除文件或目录。
1.7 touch命令:创建一个新文件。
1.8 cat命令:显示文件内容或者将几个文件合并成一个文件。
1.9 echo命令:将指定的文本输出到终端或者文件。
2. 文件查找和搜索命令2.1 find命令:根据指定的条件在文件系统中查找文件。
2.2 grep命令:在文件或者输入中查找匹配的行。
2.3 locate命令:在系统的数据库中查找文件。
2.4 which命令:查找可执行文件的路径。
2.5 whereis命令:查找二进制程序、源代码和man页文件的路径。
3. 文件权限和权限管理命令3.1 chmod命令:修改文件或目录的权限。
3.2 chown命令:修改文件或目录的所有者。
3.3 chgrp命令:修改文件或目录的所属组。
3.4 passwd命令:修改用户密码。
4. 系统管理命令4.1 top命令:实时显示各种系统资源的使用情况。
4.2 ps命令:查看当前运行的进程。
4.3 kill命令:终止指定的进程。
4.4 service命令:启动、停止和重启系统服务。
4.5 systemctl命令:管理系统的Systemd服务。
5. 网络操作命令5.1 ifconfig命令:查看和设置网络接口配置。
5.2 ping命令:测试主机之间的连通性。
5.3 ssh命令:通过SSH协议登录到远程主机。
linux运维用户的日常分配,管理规则Linux运维用户的日常分配和管理规则作为一名Linux系统运维人员,用户的日常分配和管理是我们工作中非常重要的一项任务。
合理、安全地管理用户对系统的权限和资源的访问,对于保障系统的稳定性和数据的安全至关重要。
本文将一步一步回答“Linux运维用户的日常分配,管理规则”这个主题,为大家讲解如何有效管理和分配Linux系统中的用户。
第一步:创建用户在Linux系统中,我们需要使用`useradd`命令来创建新用户。
创建用户时,需要注意以下几点:1. 用户名选择:合理的命名用户是非常重要的。
通常情况下,我们建议使用有意义、易记、与其职责相关的名字,例如根据用户的部门或工作职责来命名。
2. 用户密码:在创建用户时,需要设置用户的密码。
我们强烈建议定期更换密码,并要求用户使用复杂的密码策略,包含数字、字母和特殊字符,以增加密码的安全性。
3. 用户家目录:每个用户都应该有自己的家目录,用于存放用户的私人文件和配置文件。
可以使用`-m`选项来同时创建用户和家目录,或者使用`usermod`命令来修改用户的家目录。
4. 用户组:每个用户都应该属于一个或多个用户组。
用户组是一种将多个用户聚集在一起的方式,方便管理和授权。
可以使用`-g`选项来指定用户的主用户组,使用`-G`选项来指定用户的附加用户组。
第二步:设置用户权限在Linux系统中,用户的权限指的是用户对文件和目录的访问权限。
为了保证系统的安全性,合理设置用户的权限是非常重要的。
以下是设置用户权限的一些建议:1. 最小权限原则:为了避免用户的滥用权限,我们应该给予用户足够但不是过多的权限。
一般来说,用户应该只能访问自己需要的文件和目录,不应具有对系统关键文件进行修改和删除的权限。
2. 权限控制:使用`chmod`命令可以为用户设置文件和目录的权限。
可以使用数字或符号两种方法来设置权限。
推荐使用符号方法,因为它更直观和易读。
运维工程师必会的109个Linux命令作为运维工程师,熟练掌握Linux命令是必不可少的技能。
在这篇文章中,我们将列举出109个运维工程师必会的Linux命令,分别按照系统管理、网络管理、文件管理、进程管理和系统监控五个方面进行介绍。
一、系统管理1. ps:显示进程信息2. top:动态显示进程信息3. netstat:显示网络连接信息4. ifconfig:显示网络接口信息5. uname:显示系统信息6. date:显示时间7. cal:显示月历8. who:显示当前在线用户9. df:显示文件系统使用情况10. du:显示目录或文件大小11. chroot:将根目录切换到指定目录12. kill:终止进程13. awk:文本处理工具14. sed:文本处理工具15. find:查找文件16. wget:下载文件17. ssh:远程登录工具18. scp:远程拷贝工具19. ssh-keygen:生成SSH密钥二、网络管理20. ping:检测网络连通性21. traceroute:显示网络路径22. nslookup:域名解析工具23. host:显示主机名24. telnet:远程登录工具25. ftp:文件传输工具26. curl:网络工具27. tcpdump:网络抓包工具28. iptables:防火墙工具29. route:显示路由表30. arp:显示ARP缓存表31. mtr:网络诊断工具32. nmap:端口扫描工具三、文件管理33. ls:显示目录内容34. pwd:显示当前工作目录35. cd:切换工作目录36. mkdir:创建目录37. rmdir:删除目录38. touch:创建空文件39. cp:复制文件或目录40. mv:移动或重命名文件或目录41. rm:删除文件或目录42. ln:创建硬链接或符号链接43. cat:显示文件内容44. tail:显示文件尾部内容45. head:显示文件头部内容46. less:文件查看工具47. more:文件查看工具48. diff:比较两个文件的差异49. patch:打补丁工具50. gzip:压缩文件工具51. gunzip:解压文件工具四、进程管理52. ps:显示进程信息53. top:动态显示进程信息54. kill:终止进程55. killall:终止所有同名进程56. nohup:在后台运行进程57. fg:将后台进程切换到前台58. bg:将前台进程切换到后台59. nice:设置进程优先级60. renice:修改进程优先级61. jobs:显示后台任务62. crontab:计划任务管理工具63. at:一次性任务管理工具五、系统监控64. free:显示系统内存使用情况65. top:动态显示进程信息和系统状态66. vmstat:显示系统虚拟内存使用情况67. iostat:显示系统磁盘使用情况68. mpstat:显示系统CPU使用情况69. sar:系统性能监控工具70. dstat:系统性能监控工具71. htop:更好的进程监控工具72. pidstat:进程性能监控工具73. stress:系统压力测试工具74. top10:显示系统资源占用前10的进程75. pstree:以树形结构显示进程关系76. slabtop:显示内核内存缓存使用情况77. tcpdump:网络抓包工具78. ss:网络连接和socket统计工具79. uptime:显示系统运行时间和负载情况80. systemd-analyze:系统启动耗时分析工具六、系统安全81. netstat:显示网络连接信息82. lsof:显示进程打开的文件83. ps:显示进程信息84. top:动态显示进程信息85. strace:跟踪系统调用和信号86. setuid:设置程序运行权限87. chattr:设置文件属性88. chkrootkit:检测系统是否被入侵89. rkhunter:检测系统是否被入侵90. iptables:防火墙工具91. ssh-keygen:生成SSH密钥92. ssh:远程登录工具93. scp:远程拷贝工具94. openssl:加密解密工具95. openssh:安全shell工具96. snort:入侵检测系统97. tripwire:文件完整性检查工具98. tcpdump:网络抓包工具99. ss:网络连接和socket统计工具100. w3af:Web应用程序安全扫描工具101. nmap:端口扫描工具102. Nessus:漏洞扫描工具103. Nikto:Web服务器漏洞扫描工具104. OpenVAS:漏洞扫描工具105. Metasploit:渗透测试框架106. Burp Suite:Web应用程序渗透测试工具107. Kali Linux:渗透测试操作系统108. Hydra:密码破解工具109. John the Ripper:密码破解工具总结:通过学习和掌握这109个必会的Linux命令,运维工程师可以更高效地管理和维护系统,确保系统的稳定性和安全性。
Linux基本命令及其应用Linux是一种类Unix操作系统,具有高度的开放性和灵活性。
作为一名Linux用户,我们需要熟悉Linux基本命令及其应用,以便能够很好地管理和维护系统。
本篇论文将介绍常用的Linux基本命令及其应用,包括文件与目录操作、用户和权限管理、进程和系统状态管理等。
一、文件与目录操作1. pwd:查看当前工作目录2. cd:切换目录3. ls:列出目录中的所有文件和子目录4. mkdir:创建新目录5. touch:创建空文件或改变文件的修改时间6. rm:删除指定的文件或目录7. cp:复制文件或目录8. mv:移动文件或目录二、用户和权限管理1. useradd:添加新用户2. userdel:删除用户3. passwd:更改用户密码4. groupadd:添加新用户组5. groupdel:删除用户组6. chown:更改文件或目录的所有者7. chmod:更改文件或目录的访问权限三、进程和系统状态管理1. top:监控进程和系统资源的使用情况2. ps:列出当前运行的进程3. kill:终止指定进程4. free:查看系统内存使用情况5. df:查看文件系统使用情况6. netstat:查看网络状态信息以上是常用的Linux基本命令及其应用,在实际应用中,还需要结合具体的环境和任务,进行深入的学习和应用。
下面将举例说明Linux基本命令的具体应用。
1.文件与目录操作在实际应用中,我们常常需要对文件进行复制、移动、重命名等操作,下面以复制文件为例进行说明。
假设当前目录下有一个文件test.txt,需要将其复制到/tmp目录中,可以使用cp命令:cp test.txt /tmp/如果需要复制整个目录,可以使用cp命令的-r选项:cp -r /home/user/test /tmp/2.用户和权限管理在实际应用中,我们需要为不同的用户分配不同的权限,以保护系统的安全性。
下面以创建新用户为例进行说明。
Linux下计算命令:求和、求平均值、求最值-运维笔记在Linux系统下,经常会有⼀些计算需求,那么下⾯就简单梳理下⼏个常⽤到的计算命令⼀、bc 命令bc命令是⼀种⽀持任意精度的交互执⾏的计算器语⾔。
bash内置了对整数四则运算的⽀持,但是并不⽀持浮点运算,⽽bc命令可以很⽅便的进⾏浮点运算,当然整数运算也不再话下常⽤参数选项:-i:强制进⼊交互式模式;-l:定义使⽤的标准数学库;-w:对POSIX bc的扩展给出警告信息;-q:不打印正常的GNU bc环境信息;-v:显⽰指令版本信息;-h:显⽰指令的帮助信息。
在bc⼯作环境下,可以使⽤以下计算符号:+ 加法- 减法* 乘法/ 除法^ 指数% 余数其中,在做“除法计算”或“余数计算”时,可以使⽤scale指定⼩数点之后的位数(默认为0,即整数)实例说明:[root@slave-server ~]# bc -vbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.[root@slave-server ~]# bc <<< 5*420[root@slave-server ~]# bc <<< 5+49[root@slave-server ~]# bc <<< 50-1436[root@slave-server ~]# bc <<< 50/105[root@slave-server ~]# bc <<< 50/316[root@slave-server ~]# bc <<< 3^327如下,进⼊交互模式:也可以⼀⾏输⼊多个计算,⽤逗号;相隔。
[root@slave-server ~]# bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.3+101310-5510*1010010^210010/2510/33scale=410/33.333310%3.00013+4;5*2;5^2;18/4710254.500010^3;100+50;4000-598;33*8;899/341000150340226426.4411以上是使⽤交互的计算,也可以不进⾏交互⽽直接计算出结果。
linux实用系统管理命令Linux是一种非常流行的操作系统,已成为许多服务器和个人电脑的首选系统。
Linux系统有很多优点,其中一个很大的优点是它丰富的命令行工具,这些工具可以大大增强系统的管理和维护能力。
本文将介绍几个常用的实用系统管理命令,以帮助读者更好地管理他们的Linux系统。
1. df (磁盘空间使用量查询)df命令可以用来查询磁盘空间使用情况。
这是一个非常有用的命令,因为在管理系统的时候,了解磁盘的使用情况可以帮助你更好地规划磁盘的使用。
以下是一个使用df命令查询磁盘使用情况的例子:$ df -hFilesystem Size Used Avail Use% Mounted on /dev/sda1 20G 4.4G 15G 23% / tmpfs7.8G 0 7.8G 0% /dev/shm /dev/sda2 1.8T 1.3T 440G 76% /home通过这个结果,我们可以看到系统的根分区已经使用了23%的容量。
另外,df命令也可以查询其他分区的使用情况,仅需指定不同的挂载点即可。
2. top (查看正在运行的进程)top命令可以用来查看系统中正在运行的进程。
这是一个非常有用的命令,可以帮助你了解系统资源的占用情况,以及哪些进程可能会耗费过多的系统资源。
以下是一个使用top 命令查看正在运行的进程的例子:$ toptop - 16:57:44 up 45 days, 5:43, 6 users, load average: 0.00, 0.01, 0.05 Tasks: 201 total, 1 running, 199 sleeping, 0 stopped, 1 zombie %Cpu(s): 2.6 us, 4.4 sy, 0.0 ni, 92.6 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st KiB Mem : 16340792 total, 12160792 free, 2259268 used, 1917732 buff/cacheKiB Swap: 19527676 total, 19421868 free, 105808 used. 13718824 avail MemPID USER PR NI VIRT RES SHRS %CPU %MEM TIME+ COMMAND 2130 root20 0 6355216 171672 70588 S 4.0 1.1 788:04.33 java 3444 mysql 20 0 844624 128776 8820 S 1.6 0.8 695:22.55 mysqld 5151 root 20 0 430100 12596 8180 S 0.7 0.1 5:16.04 php-fpm 4824 nginx 20 0 148405 10908 6464 S 0.3 0.1 78:36.75 nginx通过这个结果,我们可以看到目前正在运行的进程,以及它们占用的系统资源。
Linux终端命令大全常用命令一览Linux操作系统是一种开源的操作系统,广泛应用于各种场景中。
在Linux系统中,终端命令是一种非常重要的操作方式,通过终端命令可以完成各种系统管理、文件操作、软件安装等任务。
本文将为您介绍一些常用的Linux终端命令,帮助您更好地理解和使用Linux系统。
一、系统管理命令1. `ls`:列出当前目录下的文件和文件夹。
2. `cd`:切换目录,进入指定的文件夹。
3. `pwd`:显示当前所在的目录路径。
4. `mkdir`:创建一个新的文件夹。
5. `rm`:删除文件或文件夹。
6. `cp`:复制文件或文件夹。
7. `mv`:移动文件或文件夹。
8. `cat`:显示文件内容。
9. `more`:分页显示文件内容。
10. `grep`:在文件中搜索指定的字符串。
11. `ps`:显示当前正在运行的进程。
12. `top`:实时显示系统资源使用情况。
二、文件操作命令1. `touch`:创建一个新的空文件。
2. `vi`:编辑文件。
3. `nano`:简易文本编辑器。
4. `head`:显示文件开头部分。
5. `tail`:显示文件结尾部分。
6. `wc`:统计文件的行数、单词数和字符数。
7. `chmod`:修改文件的权限。
8. `chown`:修改文件的所有者。
9. `ln`:创建文件的链接。
三、网络操作命令1. `ping`:测试与指定主机的连接。
2. `ifconfig`:显示或配置网络接口。
3. `ssh`:通过网络连接到远程主机。
4. `scp`:在本地主机和远程主机之间复制文件。
5. `wget`:从网络下载文件。
四、软件操作命令1. `apt-get`:在Debian和Ubuntu系统中安装、升级和卸载软件包。
2. `yum`:在CentOS和Fedora系统中安装、升级和卸载软件包。
3. `dpkg`:Debian包管理器,用于安装、升级和卸载软件包。
linux常⽤命令⼤全,常⽤的linux命令有哪些1、ls命令就是 list 的缩写,通过 ls 命令不仅可以查看 linux ⽂件夹包含的⽂件,⽽且可以查看⽂件权限(包括⽬录、⽂件夹、⽂件权限) 查看⽬录信息等等。
常⽤参数搭配:ls -a 列出⽬录所有⽂件,包含以.开始的隐藏⽂件ls -A 列出除.及..的其它⽂件ls -r 反序排列ls -t 以⽂件修改时间排序ls -S 以⽂件⼤⼩排序ls -h 以易读⼤⼩显⽰ls -l 除了⽂件名之外,还将⽂件的权限、所有者、⽂件⼤⼩等信息详细列出来实例:(1) 按易读⽅式按时间反序排序,并显⽰⽂件详细信息ls -lhrt(2) 按⼤⼩反序显⽰⽂件详细信息ls -lrS(3)列出当前⽬录中所有以"t"开头的⽬录的详细内容ls -l t*(4) 列出⽂件绝对路径(不包含隐藏⽂件)ls | sed "s:^:`pwd`/:"(5) 列出⽂件绝对路径(包含隐藏⽂件)find $pwd -maxdepth 1 | xargs ls -ld2、cd 命令cd(changeDirectory) 命令语法:cd [⽬录名]说明:切换当前⽬录⾄ dirName。
实例:(1)进⼊要⽬录cd /(2)进⼊ "home" ⽬录cd ~(3)进⼊上⼀次⼯作路径cd -(4)把上个命令的参数作为cd参数使⽤。
cd !$3、pwd 命令pwd 命令⽤于查看当前⼯作⽬录路径。
实例:(1)查看当前路径pwd(2)查看软链接的实际路径4、mkdir 命令mkdir 命令⽤于创建⽂件夹。
可⽤选项:-m: 对新建⽬录设置存取权限,也可以⽤ chmod 命令设置;-p: 可以是⼀个路径名称。
此时若路径中的某些⽬录尚不存在,加上此选项后,系统将⾃动建⽴好那些尚不在的⽬录,即⼀次可以建⽴多个⽬录。
实例:(1)当前⼯作⽬录下创建名为 t的⽂件夹mkdir t(2)在 tmp ⽬录下创建路径为 test/t1/t 的⽬录,若不存在,则创建:mkdir -p /tmp/test/t1/t5、rm 命令删除⼀个⽬录中的⼀个或多个⽂件或⽬录,如果没有使⽤ -r 选项,则 rm 不会删除⽬录。
Linux运维之dmesg命令使⽤Linux内核是操作系统的核⼼,它控制对系统资源(例如:CPU、I/O设备、物理内存和⽂件系统)的访问。
在引导过程中以及系统运⾏时,内核会将各种消息写⼊内核环形缓冲区。
这些消息包括有关系统操作的各种信息。
内核环形缓冲区是物理内存的⼀部分,⽤于保存内核的⽇志消息。
它具有固定的⼤⼩,这意味着⼀旦缓冲区已满,较旧的⽇志记录将被覆盖。
dmesg命令⾏实⽤程序⽤于在Linux和其他类似Unix的操作系统中打印和控制内核环形缓冲区。
对于检查内核启动消息和调试与硬件相关的问题很有⽤。
在本教程中,我们将介绍dmesg命令的基础。
使⽤ dmesg 命令dmesg命令的语法如下:dmesg [OPTIONS]在不带任何选项的情况下调⽤时,dmesg将所有消息从内核环形缓冲区写⼊标准输出:$ dmesg默认情况下,所有⽤户都可以运⾏dmesg命令。
但是,在某些系统上,⾮ root ⽤户可能会限制对dmesg的访问。
在这种情况下,调⽤dmesg`时您将收到如下错误消息:dmesg: read kernel buffer failed: Operation not permitted内核参数kernel.dmesg_restrict指定⾮特权⽤户是否可以使⽤dmesg查看来⾃内核⽇志缓冲区的消息。
要删除限制,请将其设置为零:$ sudo sysctl -w kernel.dmesg_restrict=0通常,输出包含很多信息⾏,因此只能看到输出的最后⼀部分。
要⼀次查看⼀页,请将输出通过管道传送到分页实⽤程序,例如less或more:$ dmesg --color=always | less其中的--color=always参数⽤于保留彩⾊输出。
如果要过滤缓冲区消息,可能使⽤grep。
例如,要仅查看与 USB 相关的消息,请键⼊:$ dmesg | grep -i usbdmesg 从/proc/kmsg虚拟⽂件中读取内核⽣成的消息。
《Linux系统管理与运维》一、Linux系统管理与运维基础知识1.1 Linux系统的命令行操作Linux系统最基本的操作方式是通过命令行来操作,而命令行最常用的就是shell命令解释器。
常用的shell命令有:文件操作命令、进程管理命令、网络命令等。
对于管理员来说,熟练掌握命令行操作,可以大大提高工作效率,并能准确、快速地找到问题所在。
常用的命令有:ls、cd、mv、tar、cp、dd、find、ps、top、netstat等。
1.2 Linux系统用户管理Linux系统采用多用户方式,所以用户的管理是系统安全的基础。
管理员需要进行用户的创建、修改、删除、权限配置等操作。
常用的命令有:useradd、usermod、userdel、passwd等。
管理员也可以通过GUI图形界面来进行操作。
1.3 Linux系统的服务管理Linux系统是一种基于服务模式的操作系统,因此管理员需要理解并熟悉系统的服务程序、进程以及如何对它们进行监测、管理和配置。
常用的命令有:systemctl、service、chkconfig等。
1.4 Linux系统的文件系统管理Linux系统采用独特的文件系统结构,文件高效性能极高,同时也需要进行有效的管理。
常见的文件系统工具有:df、du、mount、umount等。
1.5 Linux系统的硬件设备管理Linux系统管理的不仅是软件系统,同时也要管理硬件设备。
针对硬件设备进行相应的管理,可以提高设备可靠性、性能和安全。
常见的设备管理工具有:lsusb、lspci等。
二、Linux系统管理与运维常用工具2.1 文件管理器nautilusnautilus是Linux桌面环境中最常用的文件管理器。
它可以快速、方便地管理文件和目录,支持文件预览、复制、移动、删除、重命名和属性设置等功能。
2.2 文本编辑器vivi是Linux下最古老、最常用、功能最强大的文本编辑器。
它可以在命令行下进行编辑,也可以通过GUI图形界面进行编辑。
Linux系统运维技能详解Linux是一种在服务器端操作的开源系统,它的安全性和稳定性是得到广泛认可的。
作为一个运维人员,具备一定的Linux系统运维技能是非常必要的。
本文将从几个方面介绍Linux系统运维技能。
一、系统管理系统管理是Linux系统的核心。
运维人员应当熟练掌握Linux 系统的基本操作命令,如cat、ls、ps、top等。
此外,系统管理还包括对系统日志的监控和管理,对系统异常的处理、软件安装与升级、用户与组管理等。
1.1 日志管理系统中的日志文件大部分都存储在/var/log/目录下,常用的日志文件包括系统日志/var/log/messages、应用程序日志/var/log/nginx/access.log。
运维人员应当定期查看日志文件以保证系统正常运作。
1.2 软件安装安装软件包可以使用yum install命令,卸载软件包可以使用yum remove命令。
另外还可以使用源码包的安装方式,通常需要解压、编译、安装。
安装源码包时需要注意安装程序的依赖关系。
1.3 用户与组管理添加用户:useradd username删除用户:userdel username修改用户:usermod username添加组:groupadd groupname删除组:groupdel groupname修改组:groupmod groupname二、网络管理网络管理是Linux系统运维工作的重要组成部分,主要包括对网络接口、路由表、防火墙、服务端口等的管理。
运维人员应当熟悉网络管理相关的操作命令和配置文件。
2.1 网络接口管理查询网卡信息:ifconfig修改网卡配置:vi /etc/sysconfig/network-scripts/ifcfg-ethN2.2 路由表管理查看路由表:route -n添加路由:route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.12.3 防火墙管理开启防火墙:systemctl start firewalld关闭防火墙:systemctl stop firewalld查看防火墙状态:systemctl status firewalld添加端口:firewall-cmd --zone=public --add-port=80/tcp --permanent重启防火墙:systemctl restart firewalld三、安全管理安全管理是Linux系统运维中最重要的一部分,它包括用户认证、访问控制、日志管理、病毒防御等。
linux系统netstat命令详解(netstat常⽤运维命令)列出所有端⼝ (包括监听和未监听的)netstat -a #列出所有端⼝netstat -at #列出所有tcp端⼝netstat -au #列出所有udp端⼝列出所有处于监听状态的 Socketsnetstat -l #只显⽰监听端⼝netstat -lt #只列出所有监听 tcp 端⼝netstat -lu #只列出所有监听 udp 端⼝netstat -lx #只列出所有监听 UNIX 端⼝显⽰每个协议的统计信息netstat -s 显⽰所有端⼝的统计信息netstat -st 显⽰TCP端⼝的统计信息netstat -su 显⽰UDP端⼝的统计信息在netstat输出中显⽰ PID 和进程名称netstat -ptnetstat -p可以与其它开关⼀起使⽤,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很⽅便的发现特定端⼝运⾏的程序。
在netstat输出中不显⽰主机,端⼝和⽤户名(host, port or user)当你不想让主机,端⼝和⽤户名显⽰,使⽤netstat -n。
将会使⽤数字代替那些名称。
同样可以加速输出,因为不⽤进⾏⽐对查询。
netstat -an如果只是不想让这三个名称中的⼀个被显⽰,使⽤以下命令:netsat -a --numeric-portsnetsat -a --numeric-hostsnetsat -a --numeric-users持续输出netstat信息netstat -c #每隔⼀秒输出⽹络信息查看某个端⼝的连接数:⽐如查看 18180 端⼝可以显⽰详细的端⼝连接信息:lsof -i:18180直接显⽰连接的数量:netstat -an |grep 'ESTABLISHED' |grep -i '18180' |wc -l统计 TCP连接数命令:netstat -an |grep 'ESTABLISHED' |grep 'tcp' |wc -l打印tcp连接最多的前10个ip地址netstat -ntu | grep tcp | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10查看连接某服务端⼝最多的的IP地址:netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr查看服务器的TCP连接状态并汇总netstat -an|awk '/^tcp/{++S[$NF]}END{for (a in S)print a,S[a]}'参数说明:CLOSED:没有连接活动或正在进⾏的;LISTEN:服务器正在等待的进⼊呼叫;SYN_RECV:⼀个连接请求已经到达,等待确认;SYN_SENT:应⽤已经开始,打开⼀个连接;ESTABLISHED:正常数据传输状态,也可以近似的理解为当前服务器的并发数;FIN_WAIT1:应⽤已经完成;FIN_WAIT2:另⼀边同意释放;ITMED_WAIT:等待所有分组死掉;CLOSING:两边同时尝试关闭;TIME_WAIT:另⼀边已初始化⼀个释放;LAST_ACK:等待所有分组死掉;参考:。
1.修改系统时间[root@localhost ~]# date -s "2012-11-16 10:16:00"[root@localhost ~]# clock -w2.查看系统的内核[root@localhost ~]# uname –a3.查看linux服务器物理CPU的个数[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc –l4.查看linux服务器逻辑CPU的个数[root@localhost ~]# cat /proc/cpuinfo | grep "processor " | wc –l5.查看linux服务器的内存使用[root@localhost ~]# free –m已用内存:used-buffers-cached可用内存:free+buffers+cached6.查看服务器硬盘使用情况[root@localhost ~]# fdisk –l7.查看文件系统的磁盘空间占用情况[root@localhost ~]# df –h8.查看服务器IO使用情况,,(使用下面命令要先安装软件包yum –y install sysstat)[root@localhost ~]# iostatIostat –d –x –k 1(持续查看IO使用)如果%util接近100%说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
如果idble小于70%,I/O的压力就比较大,说明读取进程中有较多的等待,还可以结合vmstat查看b参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的百分比,高于30%时I/O的压力就比较高了)。
9.查看目录的大小[root@localhost ~]# du -sh /root10.Dd命令的使用,在进行维护系统时也经常用到*制作交换文件的时候Dd if=/dev/zero of=/swapfile bs=1024 count=65536*制作驱动盘的时候Dd if=rhel40 .img of=/dev/fd0 bs=10k制作ISO镜像的时候Dd if=/dev/cdrom of=/root/cd1 .iso11.查看系统负载情况[root@localhost ~]# uptime 或者 top在使用top时,如果r经常大于3或4,且id经常小于50,则标示CPU的负荷很重如果每个cpu当前的活动进程数大于5,则标示系统性能问题严重。
12.使用vmstat命令查看linux系统的整体性能(进程、内存、虚拟内存、磁盘IO、CPU等)[root@localhost ~]# vmstat13.查看系统是23位的还是64位的[root@localhost ~]# ls -lF / | grep /$*或者用命令# file /sbin/init查看输出结果是否有/lib64的目录,有则说明系统是64位的,没有说明是32位的。
14.查看系统安装的模块[root@localhost ~]# lsmod15.查看服务器PCI设置(如:网卡、声卡、显卡等详细信息)[root@localhost ~]# lspci16.查看和设置用户密码策略[root@localhost ~]# vim /etc/login.defs*强制密码长度[root@localhost ~]# vim /etc/pam.d/system-authpassword requisite pam_cracklib.so try_first_pass retry=3 minlen=12 17.设置登录超时自动退出终端[root@localhost ~]# vim /etc/profieexport TMOUT=60018.设置禁止root用户和空密码用户远程登录系统[root@localhost ~]# vim /etc/ssh/sshd_configPermitRootLogin noPermitEmptyPasswords no如果拒绝某个用户远程登录系统则:(不能使用deny和allow)DenyUsers zhangfeng zhangxiao-允许用户zhang远程登录系统,允许用户wang在某个主机登录,其它用户不允许。
AllowUsers zhang wang@192.168.12.1限制登录失败后的重试次数 MaxAuthTries 3设置完后SSH:使用命令是设置的生效:# /etc/init.d/sshd reload19.系统日志管理[root@localhost ~]# vim /etc/syslog.conf (定义日志类型,输出路径)[root@localhost ~]# vim /var/log/secure(查看系统登录安全日志:SSH/POP3/telnet、ftp等)[root@localhost ~]# last (产看登录用户的信息)[root@localhost ~]# lastlog (查看所有用户登录的时间)20.设置用户在系统的权限;如只让用户使用ifconfig命令。
[root@localhost ~]# visudo (编辑sudo文件)Zhang localhost=/sbin/ifconfig定义别名格式如下:User_Alias MING=zhang,wang,xiao (别名必须大写,这是定义一个用户组)Host_Alias ZHU=smtp,popCmnd_Alias MING=/bin/rpm , /usr/bin/yum (定义一组命令集合)进行调用:Cmnd_Alias MING=/bin/rpm ,/usr/bin/yumZhang localhost=MING启用sudo后,进行日志设置[root@localhost ~]# visudoDefault logfile = “/var/log/sudo”[root@localhost ~]# vim /etc/syslog.confLocal12.debug /var/log/sudo[root@localhost ~]# /etc/init.d/syslog restart[root@localhost ~]# sudo –l (查看当前用户被授权的sudo命令)21.锁定密码文件,运行增加和删除;[root@localhost ~]# chattr +i /etc/passwd[root@localhost ~]# chattr -I /etc/passwd(取消i权限)22.禁止用户执行控制台命令(poweroff、halt、reboot、eject)在目录/etc/security/console.apps/下有以上命令,将其打包并移除到别的目录或者删除。
23.禁止用户执行Ctrl+Alt+Del热键重启命令[root@localhost ~]# vim /etc/inittab#ca::ctrlaltdel:/sbin/shutdown -t3 -r now[root@localhost ~]# init q (使用此命令使之生效)24.在grub之前设置密码,使用户在进入grub前输入密码①[root@localhost ~]# grub-md5-crypt (设置MD5加密密码)②[root@localhost ~]# vim /boot/grub/grub.conf (在title 前加入password--MD5 )25.限制用户登录的tty终端[root@localhost ~]# vim /etc/inittab (在tty终端前加#号,注释掉就可以)26.禁止root用户登录的终端[root@localhost ~]# vim /etc/securetty (加#号注释)27.禁止除root外的用户从tty1终端登录系统①[root@localhost ~]# vim /etc/pam.d/loginAccount required pam_access.so (增加此认证)②[root@localhost ~]# vim /etc/security/access.conf-:ALL EXCEPT root:tty1 (去掉#号)- : root : 192.168.12.0/24 172.16.0.0/8(禁止root用户从这两个网段远程登录)26. 防火墙规则表Filter表:主要是对数据包进行过滤Nat表:主要用于修改数据包的IP地址、端口号等。
Mangle表:此表应用并不广泛。
Raw表:主要用于决定数据包是否被状态跟踪机制处理,在匹配时raw表优先于其它表。
Iptables -A(在末尾追加一条规则)-D(删除指定链中的某条规则,按序号或内容)-I(在指定的链中插入一条规则,没有指定位置,在开头插入)-L (显示防火墙规则)-F (清除指定连中所有规则,没有指定则清楚表中所有链的规则)-X(清除用户自定义的规则链)-P (设置默认的策略)Iptables (-t表名)(-A命令选项)(链名)(条件匹配–p tcp)(-j 目标动作)28. Linux 系统SNATnat 表的prerouting 和* iptables –s 192.168.1.0/24 -o etho -j IP 使用此策略)* iptables -t nat -A POSTROUTING –s 192.168.1.0/24 -o ppp0 -j MASQUERADE (使用动态公网IP 时使用次策略)* Iptables -t nat -A PREROUTING -I eth0 -d 200.100.100.1 -p tcp--dport 80 -j DNAT --to-destination 192.68.12.1 (首先要开启路由转发功能,在使用DNAT 策略)27. 代理服务器squid配置文件:/etc/squid/squid.confhttp_port 3128 (这是squid 的默认端口号)cache_mem 64MB (用于设置缓存的内存空间大小)maximum_object_size 4096 KB (允许保存的缓存的最大对象大小)reply_body_max_size 1024 allow all (允许用户下载的最大文件大小)access_log (用于指定日志文件的保存位置)visible_hostname (用于设置代理服务器可用的完整主机名)[root@localhost ~]# squid -z (初始化缓存目录)[root@localhost ~]# squid -k reconfigure (重新加载配置文件)脚本基础:29. Sed 的基础用法Sed 的格式如下:Sed 【-nefr 】【n1,n2】 action其中:-n :是安静模式,只有经过sed 处理过的行才显示出来,其它的不显示。