linux整理简单齐全运维手册

linux整理简单齐全运维手册
linux整理简单齐全运维手册

释放内存:

sync

echo 3 > /proc/sys/vm/drop_caches

Linux查看Dell服务器型号

命令:

dmidecode | grep "Product Name"

查看系统负载:

cat /proc/loadavg

0.0 0.00 0.00 1/283 10904

意思是:前三个是系统负载,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-9 a-z目录

for i in `seq 0 9` {a..z};do mkdir -p $i;done:

测试硬盘性能工具:iozone

监视服务器每少上下文切换数次工具:Nmon(很不错的性能监视工具)

#占用内存大小前10的进程

ps -eo comm,size --sort -size | head -10

#占用cp u使用前10的进程

ps -eo comm,pcpu --sort -pcpu | head -10

一、Apache服务优化:2

1.配置cronolog进行日志轮询2

2.错误页面优雅显示2

3.mod_deflate文件压缩功能3

4.mod_expires缓存功能4

5.更改apache的默认用户5

6.worker模式,提升并发数(可以达到2000-5000)5

7.屏蔽apache版本等敏感信息6

8.apache目录文件权限设置(root,目录755,文件644)6

9.开启httpd-mpm.conf 增加连接数6

10. apache防盗链功能8

11.禁止目录Index 8

12. 禁止用户覆盖(重载)8

13.关闭CGI 9

14.避免使用.htaccess文件(分布式配置文件)9

15. apache的安全模块9

16.正确途径取得源代码,勤打apache补丁10

17.apache日志授予root 700权限10

18.系统内核参数优化10

19.禁止PHP解析指定站点的目录10

20.使用tmpfs文件系统替代频繁访问的目录11

21尽可能减少HTTP 请求数11

22使用CDN做网站加速12

查看你的服务器网络连接状态

netstat -n | 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:等待所有分组死掉

ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT这项的数值。Linux下高并发的Squid服务器,TCP TIME_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}'

4.5备份单个数据库

mysqldump -u 用户–p’密码’ --default-character-set=latin1 数据库名 > 备份文件名(数据库默认编码是latin1)

普通备份:

mysqldump -uroot -p'oldboy123' oldboy > /server/bak/oldboy.sql

压缩备份:

mysqldump -uroot -p'oldboy123' oldboy |gzip > /server/bak/

设置字符集备份:

mysqldump -uroot -p'oldboy123' oldboy --default-character-set=gbk |gzip > / server/bak/

执行结果:

[root@oldboy ~]# mkdir /server/bak -p

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' oldboy > /server/ba

backup/ bak/

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' oldboy > /server/bak/old boy.sql

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' oldboy |gzip > /server/ba k/

[root@oldboy ~]# ls -l /server/bak/

total 8

-rw-r--r-- 1 root root 1991 Apr 9 00:51 oldboy.sql

-rw-r--r-- 1 root root 801 Apr 9 00:51

4.6 mysqldump在做啥?

mysqldump实际上就是把数据从mysql库里以逻辑的sql语句的形式导出。

备份的数据过滤掉注释:

[root@oldboy ~]# egrep -v "\*|--|^$" /server/bak/oldboy.sql

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=gbk;

LOCK TABLES `test` WRITE;

INSERT INTO `test` VALUES (1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'yingsui'),( 7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'鑰佺敺瀛?),(11,'鎴?); <==这里是乱码,是因为导出时的格式没加字符集,而系统当前字符集又是zh_cn.gb18030格式,一般恢复到数据库里会正常,只是系统外查看不正常而已。另外insert是批量插入的方式,这样在恢复时效率很高。

UNLOCK TABLES;

提示:看到了吧,就是我们曾经插入的表和数据。

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' oldboy --default-character-se

t=gbk > /server/bak/oldboy-gbk.sql

[root@oldboy ~]# egrep -v "\*|--|^$" /server/bak/oldboy-gbk.sql

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=gbk;

LOCK TABLES `test` WRITE;

INSERT INTO `test` VALUES (1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'yingsui'),( 7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'老男孩'),(11,'我'); <==。其他乱码是当初插入时就有问题的。

UNLOCK TABLES;

4.7备份多个库

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' -B oldboy mysql --default -character-set=gbk > /server/bak/oldboy-gbk-muli.sql

提示:-B参数是关键,表示接多个库。

※※※※※(生产环境常用)

-B, --databases To dump several databases. Note the diff erence in usage;

In this case no tables are given. All name arguments are

regarded as databasenames. 'USE db_name;' will be

included in the output.

参数说明:该参数用于导出若干个数据库,在备份结果中会加入USE db_name和CREATE DATABASE `db_name`;

-B后的参数都将被作为数据库名。该参数比较常用。当-B后的数据库列全时同-A 参数。请看-A的说明。

4.8备份单个表

mysqldump -u 用户名-p 数据库名表名> 备份的文件名

mysqldump -u root -p oldboy test> oldboy_oldboy.sql

执行结果:

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' oldboy test --default-char acter-set=gbk > /server/bak/oldboy-gbk-single.sql

提示:无-B参数,库oldboy后面就是test表了。

4.9备份多个表

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' oldboy test ett --default-c haracter-set=gbk > /server/bak/oldboy-gbk-muti-tables.sql

[root@oldboy ~]# egrep -v "\*|--|^$" /server/bak/oldboy-gbk-muti-tables.sq l

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=gbk;

LOCK TABLES `test` WRITE;

INSERT INTO `test` VALUES (1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,' yingsui'),(7,'zhangyang'),(8,'zaixiangpan'),(9,'??????'),(10,'老男孩'),(11,'我'); UNLOCK TABLES;

DROP TABLE IF EXISTS `ett`;

CREATE TABLE `ett` (

`id` int(11) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=gbk;

LOCK TABLES `ett` WRITE;

UNLOCK TABLES;

4.10备份数据库结构(不包含数据)

mysqldump -uroot -d -p'oldboy' oldboy oldboy> oldboy_oldboy.sql

-d 只备份表结构

[root@oldboy ~]# mysqldump -uroot -p'oldboy123' -d oldboy >/tmp/desc.sql

[root@oldboy ~]# egrep -v "\*|--|^$" /tmp/desc.sql

DROP TABLE IF EXISTS `ett`;

CREATE TABLE `ett` (

`id` int(11) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=gbk;

更多用法可以执行mysqldump –help 查询。有关mysql和mysqldump同学们要详细总结。

5恢复数据库

5.1 source命令恢复

进入mysql数据库控制台,mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source oldboy_db.sql #这个文件是系统路径。

[root@oldboy bak]# mysql -uroot -p'oldboy123'

Welcome to the MySQL monitor. Commands end with ; or \g.

...skip...

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use oldboy

Database changed

mysql> show tables;

+------------------+

| Tables_in_oldboy |

+------------------+

| ett |

| test |

+------------------+

2 rows in set (0.00 sec)

mysql> drop tables test;

Query OK, 0 rows affected (0.01 sec)

mysql> system ls .

oldboy-gbk-muli.sql oldboy-gbk-single.sql oldboy.sql

oldboy-gbk-muti-tables.sql oldboy-gbk.sql

mysql> source ./oldboy.sql <==还是用第一版没加字符集的备份,就是备份后查看乱码的备份。

Query OK, 0 rows affected (0.00 sec)

...skip...

Query OK, 0 rows affected (0.00 sec)

Q...skip...

Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;

+----+-------------+

| id | name |

+----+-------------+

| 1 | zhaoyue |

| 2 | jesse |

| 4 | elain |

| 5 | wodi |

| 6 | yingsui |

| 7 | zhangyang |

| 8 | zaixiangpan |

| 9 | ?????? |

| 10 | ??? |<==乱码

| 11 | ? |

+----+-------------+

10 rows in set (0.00 sec)

mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;

+----+-------------+

| id | name |

+----+-------------+

| 1 | zhaoyue |

| 2 | jesse |

| 4 | elain |

| 5 | wodi |

| 6 | yingsui |

| 7 | zhangyang |

| 8 | zaixiangpan |

| 9 | ?????? |

| 10 | 老男孩 | <==仍然是正常的,就是说备份不加字符集导出,将来恢复不会影响恢复的数据,但是备份后查看文件会乱码。

| 11 | 我 |

+----+-------------+

10 rows in set (0.00 sec)

5.2 mysql命令恢复(标准)

mysql -u oldboy -p'oldboy' oldboy < oldboy.sql

mysql> system mysql -uroot -p'oldboy123' oldboy < oldboy-gbk.sql <==导入的是备份时加字符集的版本。

mysql> select * from test;

+----+-------------+

| id | name |

+----+-------------+

| 1 | zhaoyue |

| 2 | jesse |

| 4 | elain |

| 5 | wodi |

| 6 | yingsui |

| 7 | zhangyang |

| 8 | zaixiangpan |

| 9 | ?????? |

| 10 | 老男孩 |<==因为上文source导入时已经set names gbk了,所以此处不是乱码。

| 11 | 我 |

+----+-------------+

10 rows in set (0.00 sec)

MyISAM引擎备份

由于MyISAM引擎为表级锁,因此,在备份时需要防止在备份期间数据写入而导致不一致,所以,在备份时使用--lock-all-tables加上读锁

mysqldump -A -F -B --lock-all-tables |gzip >/data/backup/$(date +%F).tar.gz

特别提示:有关MyISAM和InnoDB引擎的差别和在工作中如何选择,在前面的文章已经详细讲解过了,这里就不在讲了。

InnoDB引擎备份

InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项

--single-transaction进行备份:

mysqldump -A -F -B --single-transaction |gzip >/data/backup/$(date +%F).tar.gz 特别注意:

1)--single-transaction仅适用于InnoDB引擎。

生产环境mysqldump备份命令

mysqldump –u root –p –S /data/3306/mysql.sock –default-character-set=gbk –

single-transaction –F –B oldboy|gzip > /server/backup/mysql_$(date +%F).sql.gz

:注

-F:刷新bin-log参数,数据库备份完以后,会刷新bin-log

增量备份:

更新bin-log:

mysqladmin –uroot –p –S /data/3306/mysql.sock flush-logs

如生成mysql-bin.000004文件

把生成的最新mysql-bin.000004文件,CP到/var/backup/

把二进制的日志生成sql语句:

mysqlbinlog mysql-bin.000004>bin04.sql

如果有多个库,我们应该用-d来指定恢复单个库

mysqlbinlog mysql-bin.000004 –d oldboy >binlog.sql (当然对于库也要分库备,否则恢复还是麻烦)

还原数据:先还原全备,再还原增备

先还原全备:mysql –u root –p

还原增备:mysql –u root –p

基于时间点的增量恢复

mysqlbinlog mysql-bin.000004 –start-datetime=’2011-03-19 02:58:54’—stop-datetime=’2011-03-19 03:22:44’–r time.sql

上面语句将显示2011.03-19 02:58:54-----2011-03-19 03:22:44时间段的binlog,并输出到time.sql

拽定开始时间到文件结束

mysqlbinlog mysql-bin.000004 –start-datetime=’ 2011-03-19 02:58:

54’–d oldboy –r time.sql

这个语句只有开始时间,那么就是从2011-03-19 02:58:54时刻到日志结尾,lodboy 数据库的binlog输出到time.sql

基于位置点的增量恢复

指定开始位置和结束位置

mysqlbinlog mysql-bin.000004 –start-position=510 –stop-position=1312 –

r pos.sql

输出初始位置510,结束位置1312的所有binlog日志到pos.sql

注意:结尾的日志点细弱特殊不会被包含。即输出1312pos以前的binlog。

指定开始位置到文件结束

mysqlbinlog mysql-bin.000004 –start-position=510 –r pos510-end.sql

输出初始位置510,结束位置到文件结尾的所有binlog到pos510-end.sql。当然,你也可以指定库名输出binlog。如:

mysqlbinlog mysql-bin.000004 --start-position=510 –r pos510-end-oldboy.sql –d oldboy

从文件开头到指定结束位置

mysqlbinlog mysql-bin.000004 --stop-position=954 -r start-954.sql

输出从文件开始位置,到954位置截止的所有binlog

掌握和查找打开的文件

lsof(列出打开的文件)实用程序会显示打开的文件名。其选项仅显示某些进程,只有一个进程的某些文件描述符,或只有某些网络连接(网络连接使用文件描述符,就像普通文件一样,lsof 也显示这些)。使用ps – ef 确定了可疑进程后,输入以下命令:

# lsof -s -p pid

服务器最大设置的连接数:151

mysql> show variables like'max_connections';

+-----------------+-------+

| Variable_name | Value |

+-----------------+-------+

| max_connections | 151 |

+-----------------+-------+

1 row in set (0.00 sec)

服务器响应的最大连接数:152

mysql> show global status like 'Max_used_connections';

+----------------------+-------+

| Variable_name | Value |

+----------------------+-------+

| Max_used_connections | 152 |

+----------------------+-------+

1 row in set (0.00 sec)

查看服务器key_buffer_size数值:4

mysql> show variables like 'key_buffer_size';

+-----------------+-----------+

| Variable_name | Value |

+-----------------+-----------+

| key_buffer_size | 4 |

+-----------------+-----------+

1 row in set (0.00 sec)

查看服务器现在使用的key_buffer_size使用情况:

key_read_requests: 4

key-reads: 830525

mysql> show global status like 'key_read%';

+-------------------+-----------+

| Variable_name | Value |

+-------------------+-----------+

| Key_read_requests | 4 |

| Key_reads | 830525 |

+-------------------+-----------+

2 rows in set (0.00 sec)

计算索引未命中的概率:

key_cache_miss_rate = key_reads / key_read_requests * 100%

达到0.1%以下(即每1000个请求有一个直接读硬盘)以下都很好,如果

key_cache_miss_rae在0.01%以下的话,则说明key_buffer_size分配得过多,可以适当减少。

Key_blocks_unused表示未使用的缓存簇数,Key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过度索引,把缓存占满了。比较理想的设置是:

key_blocks_used / ( key_blocks_unused + key_blocks_used ) * 100 % = 80%

mysql> show global status like 'key_blocks_u%';

+-------------------+--------+

| Variable_name | Value |

+-------------------+--------+

| Key_blocks_unused | 317003 |

| Key_blocks_used | 6439 |

+-------------------+--------+

2 rows in set (0.00 sec)

临时表:

当执行语句时,关于已经被创造了的隐含临时表的数量,我们可以用如下命令查询其具体情况:

mysql> show global status like 'created_tmp%';

+-------------------------+--------+

| Variable_name | Value |

+-------------------------+--------+

| Created_tmp_disk_tables | 343326 |

| Created_tmp_files | 172 |

| Created_tmp_tables | 675795 |

+-------------------------+--------+

3 rows in set (0.00 sec)

每次创建临时表时,created_tmp_tables都会增加,如果是在磁盘上创建临时表,created_tmp_disk_tables也会增加。created_tem_files表示MYSQL服务创建的临时文件数,比较理想的配置是:

Created_Tmp_disk_tables / Created_tmp_tables * 100% <= 25%

比如上面服务器

Created_Tmp_disk_tables / Created_tmp_tables * 100% = 50%,比较差了。我们再看一下MYSQL服务器对临时表的配置:

mysql> show variables where Variable_name in ('tmp_table_size','max_heap _table_size');

+---------------------+----------+

| Variable_name | Value |

+---------------------+----------+

| max_heap_table_size | |

| tmp_table_size | |

+---------------------+----------+

2 rows in set (0.00 sec)

只有16M以下的临时表才能全部放在内存中,超过的就会用到硬盘临时表。

打开表的情况

Open_tables表示打开表的数量,Opend_tables表示打开过的表数量,我们可以用如下命令查看其具体情况:

mysql> show global status like 'open%tables%';

+---------------+--------+

| Variable_name | Value |

+---------------+--------+

| Open_tables | 512 |

| Opened_tables | 234200 |

+---------------+--------+

2 rows in set (0.00 sec)

如果Opened_tables数量过大,说明配置中tables_caceh(MYSQL 5.1.3 之后这个值叫做table_open_cache)的值可能太小。我们查询一下服务器table_cache值:mysql> show variables like 'table_open_cache';

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| table_open_cache | 614 |

+------------------+-------+

1 row in set (0.00 sec)

比较合适的值为:

Open_tables / Opened_tables * 100% >= 85%

Open_tables / table_open_cache * 100% <= 95%

进程使用情况

如果我们在MYSQL服务器的配置文件中设置了thread-cache_size,当客户端断开之时,服务器处理此客户请求的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。Threads_created表示创建过的线程数,我们可以用如下命令查看:mysql> show global status like 'Thread%';

+-------------------+-------+

| Variable_name | Value |

+-------------------+-------+

| Threads_cached | 7 |

| Threads_connected | 2 |

| Threads_created | 2124 |

| Threads_running | 2 |

+-------------------+-------+

4 rows in set (0.00 sec)

如果发现Threads_created的值过大的话,表明MYSQL服务器一直在创建线程,这也是比较耗费资源的,可以适当增大配置文件中的thread_cache_size的值。查询服务器thread_cahce_size配置,如下所示:

mysql> show variables like 'thread_cache_size';

+-------------------+-------+

| Variable_name | Value |

+-------------------+-------+

| thread_cache_size | 8 |

+-------------------+-------+

1 row in set (0.00 sec)

查询缓存

它涉及的主要有两个参数,query_cache_size是设置MYSQL的Query_Cache大小,query_cache_size是设置使用查询缓存的类型,我们可以用如下命令查看其具体情况:mysql> show global status like '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 |

+-------------------------+----------+

8 rows in set (0.00 sec)

我们再查询一下服务器上关于query-cache的配置命令如下:

mysql> show variables like '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 |

+------------------------------+----------+

5 rows in set (0.00 sec)

Linux运维工程师工作手册

Linux运维工程师工作手册 释放内存: sync echo3>/proc/sys/vm/drop_caches Linux查看Dell服务器型号 命令: dmidecode|grep"ProductName" 查看系统负载: cat/proc/loadavg 1/28310904 意思是:前三个是系统负载,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服务优化:2 1.配置cronolog进行日志轮询2 2.错误页面优雅显示2 文件压缩功能3 缓存功能4 5.更改apache的默认用户5 模式,提升并发数(可以达到2000-5000)5 7.屏蔽apache版本等敏感信息6 目录文件权限设置(root,目录755,文件644)6 9.开启增加连接数6 10.apache防盗链功能8 11.禁止目录Index8 12.禁止用户覆盖(重载)8 13.关闭CGI9 14.避免使用.htaccess文件(分布式配置文件)9 15.apache的安全模块9 16.正确途径取得源代码,勤打apache补丁10 日志授予root700权限10 18.系统内核参数优化10 19.禁止PHP解析指定站点的目录10 20.使用tmpfs文件系统替代频繁访问的目录11 21尽可能减少HTTP请求数11 22使用CDN做网站加速12

Linux运维工作内容及岗位职责

Linux运维工作内容及岗位职责 什么是Linux? 大家日常使用电脑听歌、打游戏娱乐或处理日常工作时,接触到最多的就是Windows操作系统,电脑如果不安装Windows系统是无法进行娱乐和工作的,所有的软件程序都必须运行在操作系统之上,但我们大众百姓常用的操作系统是个人版的,也就是给个人用的,熟称桌面版系统。 和Windows操作系统一样,Linux也是一个操作系统软件,只不过它是企业级服务器操作系统,Linux系统以安全、稳定、免费、高效、可自由更改源代码著称,这几个优秀的特点使得Linux系统大受欢迎,并且未来也会越来越火! Linux运维岗位描述 用一句话概括就是维护Linux操作系统以及系统之上的相关软件服务、程序代码和企业数据使得企业能够优质、高效、快速的为企业的客户提供服务,从而盈利赚钱,随着企业增长,服务器和服务数量、要求也会成倍增加,对运维的能力和数量都有更多的要求。 为什么企业会需要Linux运维岗位? 随着互联网和移动互联网的高速发展,企业用户数量曾几何级数增长(多达数百万计、千万计,微信和QQ的用户有近10亿),企业的应用及网站规模、数据量也越来越大,需要的服务器也越来越多,软件和程序架构也越来越复杂,例如:BAT中每家企业的服务器数量可能多达数万台到10万台,这么多的服务器、软件运行、网站架构、程序代码、数据安全维护都需要维护工程师,并且需求会越来越多。 Linux运维岗位及工作内容

互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师提供了一个广阔的发展空间。 Linux运维工程师岗位职责 一般从企业入门到中级Linux运维工程师的工作大致有:挑选IDC机房及带宽、购买物理服务器或云服务、购买及使用CDN服务、搭建部署程序开发及用户的访问系统环境(例如:网站运行环境)、对数据进行备份及恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)、对网站的故障进行监控、解决网站运行的潜在安全问题、开发自动化脚本程序提高工作效率、规划网站架构、程序发布流程和规范,制定运维工作制度和规范、配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求,公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。 涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,S ersync,Drbd,PPTP,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,Mongod b,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。 运维工程师还包括一些低端的岗位,例如:网络管理员、监控运维、IDC运维,值班运维,其中后三个低端岗位是没前途的岗位。 总的来说:Linux初中级运维工程师更多的是使用工具软件的阶段,属于运维的初级阶段,在一线城市互联网公司的薪资一般在8000-15000/月。

2013年最新Linux系统运维面试题(附答案)

一、有文件file1 1、查询file1 里面空行的所在行号 awk ?{if($0~/^$/)print NR}‘ file or grep -n ^$ file |awk ?BEGIN{FS=‖:‖}{print $1}‘ 2、查询file1 以abc 结尾的行 grep abc$ file1 3、打印出file1 文件第1 到第3 行 sed -n ‘1,3p‘ file1 head -3 file1 二、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1 Iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.2.1:8080 三、crontab 在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么实现 0 6-12/2 * 11 * /usr/bin/httpd.sh 四、编写个shell 脚本将/usr/local/test 目录下大于100K 的文件转移到/tmp 目录下 #!/bin/bash for file in `ls /root` do if [ -f $file ]; then if [ `ls -l $file|awk '{print $5}'` -gt 10000 ]; then mv $file /tmp/ fi fi done 五、简述raid0 raid1 raid5 三种工作模式的工作原理及特点。 RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0 只是单纯地提高 性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合。 RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能。RAID 1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时, 系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。简单来说就是:镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。 RAID10:高可靠性与高效磁盘结构 一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。 主要用于容量不大,但要求速度和差错控制的数据库中。 RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常

Linux运维经验总结

Linux运维经验总结 一、线上操作规范 1、测试使用 当初学习Linux的使用,从基础到服务到集群,都是在虚拟机做的,虽然老师告诉我们跟真机没有什么差别,可是对真实环境的渴望日渐上升,不过虚拟机的各种快照却让我们养成了各种手贱的习惯,以致于拿到服务器操作权限时候,就迫不及待的想去试试,记得上班第一天,老大把root密码交给我,由于只能使用putty,我就想使用xshell,于是悄悄登录服务器尝试改为xshell+密钥登录,因为没有测试,也没有留一个ssh连接,所有重启sshd服务器之后,自己就被挡在服务器之外了,幸好当时我备份sshd_config文件,后来让机房人员cp过去就可以了,幸亏这是一家小公司,不然直接就被干了……庆幸当年运气比较好。 第二个例子是关于文件同步的,大家都知道rsync同步很快,可是他删除文件的速度大大超过了rm -rf,在rsync中有一个命令是,以某目录为准同步某文件(如果第一个目录是空的,那么结果可想而知),源目录(有数据的)就会被删除,当初我就是因为误操作,以及缺乏测试,就目录写反了,关键是没有备份……生产环境数据被删了没备份,大家自己想后果吧,其重要性不言而喻。

2、Enter前再三确认 关于rm -rf / var 这种错误,我相信手快的人,或者网速比较慢的时候,出现的几率相当大,当你发现执行完之后,你的心至少是凉了半截。 大家可能会说,我按了这么多次都没出过错,不用怕,我只想说当出现一次你就明白了,不要以为那些运维事故都是在别人身上,如果你不注意,下一个就是你。 3、切忌多人操作 我在的上一家公司,运维管理相当混乱,举一个最典型的例子吧,离职好几任的运维都有服务器root密码。 通常我们运维接到任务,都会进行简单查看如果无法解决,就请求他人帮忙,可是当问题焦头烂额的时候,客服主管(懂点linux),网管,你上司一起调试一个服务器,当你各种百度,各种对照,完了发现,你的服务器配置文件,跟上次你修改不一样了,然后再改回来,然后再谷歌,兴冲冲发现问题,解决了,别人却告诉你,他也解决了,修改的是不同的参数……这个,我就真不知道哪个是问题真正的原因了,当然这还是好的,问题解决了,皆大欢喜,可是你遇到过你刚修改的文件,测试无效,再去修改发现文件又被修改的时候呢?真的很恼火,切忌多人操作。 4、先备份后操作 养成一个习惯,要修改数据时,先备份,比如.conf的配置文件。另外,修改配置文件时,建议注释原选项,然后再复制,修改

Linux运维从入门到高级全套案例v3

Linux运维入门到高级 目录 1. Linux入门篇 (3) 1. 1 Linux操作系统简介 (3) 1. 2 Linux发展趋势 (4) 1. 3 Linux系统安装 (4) 1. 4 Linux学习技巧 (19) 2. Linux系统篇 (20) 2.1 Linux系统管理 (20) 2.1. 1 Linux目录初识 (20) 2.1. 2 Linux常用命令 (21) 2.1. 3 Linux用户权限 (22) 2.1. 4 Linux网络配置 (23) 3. Linux服务篇 (25) 3.1 Linux服务部署 (25) 3.1. 1 构建NTP时间服务器 (25) 3.1. 2 构建DHCP服务器 (27) 3.1. 3 搭建Samba服务器 (29) 3.1. 4 搭建NFS服务器 (32) 3.1. 5 搭建FTP服务器 (33) 3.1. 6 构建Apache WEB服务器 (35) 3.1. 7 构建MySQL服务器 (38) 3.1. 8 LAMP架构网站搭建 (42) 3.1. 9 Cacti监控平台搭建 (46) 3.1. 10 Nagios监控平台搭建 (50) 3.1. 11 Kickstart自动化安装平台 (56) 4. Linux编程篇 (60) 4.1 Linux Shell编程 (60) 4.1. 1 Shell编程简介 (60) 4.1. 2 Shell变量设置 (61) 4.1. 3 Shell流程控制语句 (62) 4.1. 4 Shell脚本案例 (67) 4.1. 5 Shell数组编程 (71) 5. Linux深入篇 (72) 5. 1 构建Nginx WEB服务器 (72) 5.1. 1 Nginx WEB安装 (73)

Linux系统日常维护手册

Linux操作系统日常维护 2015年12月

目录 第1章基本操作 (1) 1.1 系统登录 (1) 1.1.1 定义登录方法 (2) 1.1.2 使用命令行进行登录 (2) 1.1.3 在命令行下退出登录状态 (4) 1.1.4 使用GUI(图形化用户界面)进行登录 (4) 1.1.5 虚拟终端 (4) 1.1.6 关闭系统 (5) 1.2 账户管理 (5) 1.2.1 创建和更改用户账户(useradd,passwd) (6) 1.2.2 删除用户账户 (7) 1.2.3 切换用户(su) (8) 1.3 关闭系统 (9) 1.4 文件与目录 (10) 1.4.1 基本概念 (10) 1.4.2 列出文件和目录(ls) (14) 1.4.3 切换工作目录(cd) (15) 1.4.4 查看当前目录(pwd) (15) 1.4.5 拷贝文件和目录(cp) (16) 1.4.6 移动文件(mv) (17) 1.4.7 文件改名(mv) (18) 1.4.8 创建目录(mkdir) (18) 1.4.9 删除文件和目录(rm,rmdir) (19) 1.4.10 查看文本文件(cat,less,more) (20) 1.4.11 查找文件(find) (22) 1.4.12 搜索字符串(grep) (23) 1.4.13 压缩和解压缩文件(gzip) (24) 1.4.14 创建和提取归档文件(tar) (25)

1.5 进程管理 (26) 1.5.1 查出进程的状态(ps) (26) 1.5.2 终止进程(kill) (28) 1.6 硬盘设备管理 (29) 1.6.1 硬盘分区 (29) 1.6.2 分区和文件系统 (30) 1.6.3 使用mount命令 (31) 1.6.4 了解磁盘的使用情况 (33) 1.7 安装和升级软件包 (37) 1.8 访问在线手册册(manpage) (39) 1.8.1 man命令 (40) 1.8.2 help命令 (41) 1.8.3 whereis命令 (41) 第2章系统管理 (43) 2.1 超级服务器和服务器程序 (43) 2.1.1 超级服务器 (43) 2.1.2 服务器 (43) 2.1.3 端口监控程序 (44) 2.1.4 超级服务器模式和独立模式 (44) 2.1.5 超级服务器的功能和任务 (44) 2.1.6 提升系统的冗余性和坚固性 (45) 2.2 超级服务器的不利方面 (45) 2.2.1 Xinetd超级服务器 (45) 2.2.2 访问控制 (48) 2.3 安装和升级软件包 (51) 2.3.1 使用rpm (51) 2.3.2 使用Turbopkg (52) 2.4 服务 (55) 2.4.1 启动脚本 (55) 2.4.2 运行级别 (57) 2.4.3 启动各运行级别 (58)

linux常见常考命令

1.新建用户usersun,口令为"abcd1234" useradd usersun passwd usersun abcd1234 abcd1234 2.将usersun用户的口令改变为"supersun2009" passwd usersun supersun2009 supersun2009 3.设置usersun用户每隔10天必须更改口令passwd -x 10 usersun 4.新建用户userpub,不需要密码就能登录useradd userpub passwd -d userpub 5.新建组群boxgroup groupadd linuxgroup 6.将用户usersun和userpub添加为boxgroup组成员gpasswd -a usersun boxgroup gpasswd -a userpub boxgroup 7.查看用户usersun和uesrpub的相关信息 finger usersun finger userpub 8.锁定用户usersun passwd -l usersun 9.一次性删除用户userpub及其工作目录 userdel -r userpub 10.为用户usersun解锁 passwd -u usersun 11.将组群boxgroup更名为ourgroup groupmod -n ourgroup boxgroup

12.删除组群ourgroup groupdel ourgroup 13.新建组群newgroup,组群号为600 groupadd newgroup groupmod -g 600 newgroup 1. 显示/etc/passwd文件中的前5行 head -n 5 /etc/passwd 2. 设置linux一分钟后重启动 shutdown -r 1 3. 进入/home目录,使用pwd显示当前目录 cd /home pwd 4. 在/下建立目录worker,在worker下建立目录host01,host02,在host01下建立目录h01,h02,删除host01下的h01目录并在host02下建立文件baby.txt mkdir worker mkdir /worker/host01 mkdir /worker/host02 mkdir /worker/host01/h01 mkdir /worker/host01/h02 rmdir /worker/host01/h01 cat>/worker/baby.txt 5. 将/etc/yp.conf复制到/worker/host02中 cp /etc/yp.conf /worker/host02 6. 尝试给/worker/host02/yp.conf建立一个软链接到/soft.soft ln -s /worker/host02/yp.conf /soft.soft 7. 建立用户win1,UID、GID等均按默认 useradd win1 8. 新建用户win2,默认主目录为/think,其余默认 useradd -d /think win2 9. 将win2用户名改为tin,UID改为700,密码改为1330855 usermod -u 700 -l tin win2 passwd tin 10. 连同主目录一起删除tin用户

LINUX系统日常维护手册.doc

SUSE操作系统日常维护课程目标: ●掌握SUSE操作系统的日常维护 参考资料: ●用服专题光盘 i文档来源为:从网络收集整理.word版本可编辑.

目录 第1章基本操作.............................................................................................................. 错误!未定义书签。 1.1 系统登录 ............................................................................................................. 错误!未定义书签。 1.1.1 定义登录方法 ........................................................................................... 错误!未定义书签。 1.1.2 使用命令行进行登录 ............................................................................... 错误!未定义书签。 1.1.3 在命令行下退出登录状态 ....................................................................... 错误!未定义书签。 1.1.4 使用GUI(图形化用户界面)进行登录 ................................................ 错误!未定义书签。 1.1.5 虚拟终端 ................................................................................................... 错误!未定义书签。 1.1.6 关闭系统 ................................................................................................... 错误!未定义书签。 1.2 账户管理 ............................................................................................................. 错误!未定义书签。 1.2.1 创建和更改用户账户(useradd,passwd) ........................................... 错误!未定义书签。 1.2.2 删除用户账户 ........................................................................................... 错误!未定义书签。 1.2.3 切换用户(su)........................................................................................ 错误!未定义书签。 1.3 关闭系统 ............................................................................................................. 错误!未定义书签。 1.4 文件与目录 ......................................................................................................... 错误!未定义书签。 1.4.1 基本概念 ................................................................................................... 错误!未定义书签。 1.4.2 列出文件和目录(ls)............................................................................. 错误!未定义书签。 1.4.3 切换工作目录(cd)................................................................................ 错误!未定义书签。 1.4.4 查看当前目录(pwd) ............................................................................ 错误!未定义书签。 1.4.5 拷贝文件和目录(cp)............................................................................ 错误!未定义书签。 1.4.6 移动文件(mv) ...................................................................................... 错误!未定义书签。 1.4.7 文件改名(mv) ...................................................................................... 错误!未定义书签。 1.4.8 创建目录(mkdir).................................................................................. 错误!未定义书签。 1.4.9 删除文件和目录(rm,rmdir) .............................................................. 错误!未定义书签。 1.4.10 查看文本文件(cat,less,more)....................................................... 错误!未定义书签。 1.4.11 查找文件(find)................................................................................... 错误!未定义书签。 1.4.12 搜索字符串(grep) .............................................................................. 错误!未定义书签。 1.4.13 压缩和解压缩文件(gzip) .................................................................. 错误!未定义书签。 1.4.14 创建和提取归档文件(tar) ................................................................. 错误!未定义书签。 文档来源为:从网络收集整理.word版本可编辑.

linux运维笔试题

linux运维笔试题 [键入文档标题] Linux 参加面试人 : 面试时间: 北京京泰昊驰网络科技有限公司 | Linux系统运维面试题 一、填空题 1、CD-ROM标准的文件系统类型是 ________ 2、在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 ________ 3、将/home/ixdba目录做归档压缩,压缩后生成ixdba.tar.bz2文件,并将此文件保存到/home目录下, 实现此任务的tar命令格式________ 4、在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为______ 5、Vim编辑器基本上可以分为3种模式,分别为________ 、________插入模式_____和_________ 6、ping命令用于测试网络的连通性,ping命令通过________协议来实现。 7、dns(域名系统)实际上是分布在internet上的主机信息的数据库,其作用是实现_______和________ 之间的转换。 二、判断题 1、,分区越大约好,因为/越大,Linux启动速度越快。( ) 2、在进行网络配置时,netstat命令用于测试网络中主机之间是否连通 ( )

3、可以在/etc/fstab中的文件系统在系统启动的时候自动加载 ( ) 4、通过ping命令就可以知道此IP是否处于激活状态( ) 5、 dns是专为基于tcp/ip的网络提供主机名到ip地址翻译的专用域名解析 系统。( ) 6、在shell命令行方式下,一行只能写一个指令,每次只能使用一个命令( ) 7、邮件系统由三部分组成:用户代理、传输代理、和投递代理。其中传输代 理功能是将邮件放入用户 的邮箱。( ) 8、在linux系统上做备份时,有两种备份形式:系统备份和用户备份。其中 用户备份的目的是尽量在 系统崩溃后能快速、简单、完全地恢复系统的运行。( ) 9、当需要中断一个进程时,可以使用键( ) 三、选择题 1、一个文件名字为rr.gz,可以用来解压缩的命令是 A.tar B.gzip https://www.360docs.net/doc/5f18048619.html,press D.uncompress 2、查看以太网mac地址的命令为: A.ping B.ifconfig C.arp D.traceroute 3、在vi编辑器中的命令模式下,键入可在光标当前所在行下添加一新行。 A. B. C. D.a 4、你使用命令“vi /etc/inittab”查看该文件的内容,你不小心改动了一些 内容,为了防止系统出问题, 你不想保存所修改内容,你应该如何操作 A.在末行模式下,键入:wq B.在末行模式下,键入:q! C.在末行模式下,键入:x! D.在编辑模式下,键入“ESC”键直接退出vi

Linux日常操作及ORACLE日常维护(新手必备)

1、登陆linux 通过xshell工具使用ssh协议登录系统;2、查看系统时间:data 3、查看系统运行时间uptime 4、查看分区情况 5、查看磁盘使用情况:df -h 6、查看IP,及网络配置信息ficonfig、ip ad

7、重启命令shutdown -r now,reboot 8、查看防火墙状态service iptables status,以下状态防火墙已关闭 9、(su -)切换至oracle安装用户,以下YZFDJKITTP为oracle的安装用回, 10、查看oracle环境变量信息cat .bash_profile 11、查看oracle监听名称,首先使用cd命令切换到监听程序配置文件所在的目录,然后使用cat命令查看监听配置文件(listener.ora)内容

12 查看监听程序状态 13 查看数据库网路服务名(tnsnames.ora),此文件与监听配置文件在同一目录下 13 测试oracle数据库服务连接情况tnsping 服务名

14 通过操作系统认证登录oracle数据库 15、查看数据库启动情况,以下为正常打开模式,可读可写 16、查看oracle实例信息 17、查看是否开启归档 18、查看表空间使用情况 SELECT TABLESPACE_NAME "biao_kong_jian",

To_char(Round(BYTES / 1024, 2), '99990.00') || '' "gongyou", To_char(Round(FREE / 1024, 2), '99990.00') || 'G' "xianyou", To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00') || 'G' "shiyong", To_char(Round(10000 * USED / BYTES) / 100, '99990.00') || '%' "bili" FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME, Floor(A.BYTES / ( 1024 * 1024 )) BYTES, Floor(B.FREE / ( 1024 * 1024 )) FREE, Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A, (SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) FREE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME) ORDER BY Floor(10000 * USED / BYTES) DESC;

Linux运维工程师必备技能

Linux运维工程师必备技能 Linux是一款免费开源的操作系统,因其具有安全、稳定、免费、高效的特点,在市场上得到广泛的应用,目前90%的企业都在使用Linux操作系统,因此,对Linux运维人才的需求量也是巨大的,那么,要是从事Linux运维工程师需要具备哪些技能? 一、版本的选择 Linux的学习首先要选择合适的Linux版本,推荐学习RedHat或CentOS,其中CentOS在企业里用的最多,当然,如果有时间和兴趣,也可以研究一下其他版本。 二、Linux基础知识 熟练掌握Linux硬件基础,Linux发展史,Linux系统安装/xshell连接/xshell优化/SSH远程连接故障问题排查,Linux基础优化,Linux目录结构知识,Linux文件属性,Linux通配符/正则表达式,Linux系统权限以及Linux系统管理等相关知识。 三、Linux网络服务 Linux网络服务有很多种,不同公司用到的不同,最好是能够熟练掌握以下知识:集群实战架构,rsync数据同步服务,Linux全网备,nfs网络存储服,inotify/sersync实时数据同步/nfs存储实时备份,http协议/www服,nginx web,lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统,nginx负载均衡深入透彻,keepalived高可用等 四、shell脚本语言

要熟练掌握shell脚本语言相关命令的使用,从而更搞笑的实现Linux运维管理。 五、数据库 Linux使用最多的数据库是Mysql数据库,因此,要熟练掌握Mysql数据库的操作以及相关操作语句的书写。 六、防火墙 Iptables是linux常用防火墙,要熟练掌握相关设置,如果有能力也可以学习一下ipset和firewalld。 七、监控工具 服务器运行情况实时反馈,完全依赖有一个好的监控工具,发现问题可以第一时间及时有效的处理,可以避免更大的损失,因此,Linux运维人才必须要会使用Linux监控工具,推荐使用Nagios。 八、数据备份 数据备份对Linux运维工程师来说是必不可少的环节,因此,Linux工作人员要熟练掌握数据备份相关知识。 以上是Linux运维工程师必备技能,当然,除此之外,还有很多技能需要Linux运维工作人员在工作中不断的进行发现问题、解决问题,并掌握相关知识,如果您想成为资深Linux运维工作人员就好好完善自己的Linux技能吧!

linux日常运维命令

1.修改系统时间 [root@localhost ~]# date -s "2012-11-16 10:16:00" [root@localhost ~]# clock -w 2.查看系统的内核 [root@localhost ~]# uname –a 3.查看linux服务器物理CPU的个数 [root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc –l 4.查看linux服务器逻辑CPU的个数 [root@localhost ~]# cat /proc/cpuinfo | grep "processor " | wc –l 5.查看linux服务器的内存使用 [root@localhost ~]# free –m 已用内存:used-buffers-cached 可用内存:free+buffers+cached 6.查看服务器硬盘使用情况 [root@localhost ~]# fdisk –l 7.查看文件系统的磁盘空间占用情况 [root@localhost ~]# df –h 8.查看服务器IO使用情况,,(使用下面命令要先安装软件包yum –y install sysstat) [root@localhost ~]# iostat Iostat –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 /root 10.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 .iso 11.查看系统负载情况 [root@localhost ~]# uptime 或者 top 在使用top时,如果r经常大于3或4,且id经常小于50,则标示CPU的负荷很重如果每个cpu当前的活动进程数大于5,则标示系统性能问题严重。 12.使用vmstat命令查看linux系统的整体性能(进程、内存、虚拟内存、磁盘IO、CPU 等) [root@localhost ~]# vmstat 13.查看系统是23位的还是64位的 [root@localhost ~]# ls -lF / | grep /$

Linux运维工程师岗位的工作职责

Linux运维工程师岗位的工作职责 Linux运维工程师需要维护和更新开发、测试、模拟、正式等环境数据库用户资源,确保资料准确性。以下是小编整理的Linux运维工程师岗位的工作职责。 Linux运维工程师岗位的工作职责1 职责: 1、负责公司各业务系统的后台服务器日常管理,用户安全、网络攻击、病毒、优化、异常监控、双机热备、数据存储等。 2、对各业务子系统的功能权限、数据权限进行分配和管理。 3、后台数据库备份、维护,异地灾备,对MySql数据库、Redis、Rabbitmq、Nginx、Tomcat的日常维护和管理。 4、负责操作系统和应用服务器的监控,配合各业务系统运维人员分析错误异常,协助解决系统问题。 5、负责公司主数据管理工作,协助数据统计维护岗位人员管理好中心主数据。 任职条件:

1.计算机、网络等相关专业大专以上学历; 2。两年以上Linux系统和网站运维工作经验; 3.精通Linux系统的安装和常规配置,监控; 4.熟悉NGINX,熟悉负载均衡技术,对HAProxy,Keepalived 等技术有实战经验者优先; 5.熟悉Mysql数据库的安装、配置、优化、例行维护与备份以及保证其高可用,熟悉PXC者优先; 6.熟悉Redis集群,Mongodb集群者优先; 7.工作认真负责,具备良好的沟通能力、团队协作能力和书面报告能力。 8.熟悉Shell/Perl/Python编程(至少一种),熟练使用脚本来完成日常系统运维工作; 9.具有较强的沟通、抗压和学习能力,具备责任心,能够快速分析解决问题; 10.熟练掌握Linux服务器集群,负载均衡,容灾部署等应用,有高并发,高流量的架构设计经验者优先。 Linux运维工程师岗位的工作职责2 职责:

linux运维面试题

linux运维工程师面试题总结 一、有文件file1 1、查询file1 里面空行的所在行号 awk ‘,if($0~/^$/)print NR-’ file or grep -n ^$ file |awk ‘BEGIN,FS=”:”-,print $1-’ 2、查询file1 以abc 结尾的行 grep abc$ file1 3、打印出file1 文件第1 到第3 行 sed -n ’1,3p’ file1 head -3 file1 二、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1 Iptables -A PREROUTING -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.18:9000 三、crontab 在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么 实现 0 6-12/2 * 11 * /usr/bin/httpd.sh 四、编写个shell 脚本将/usr/local/test 目录下大于100K 的文件转移到/tmp 目录下 #!/bin/bash for file in `ls /root` do if [ -f $file ]; then if [ `ls -l $file|awk '{print $5}'` -gt 10000 ]; then mv $file /tmp/ fi fi done 五、简述raid0 raid1 raid5 三种工作模式的工作原理及特点。 RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0 只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0 不能应用于数据安全性要求高的场合。 RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1 可以提高读取性能。RAID 1 是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。简单来说就是:镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。 RAID10:高可靠性与高效磁盘结构 一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。 主要用于容量不大,但要求速度和差错控制的数据库中。 RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个 硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常

相关文档
最新文档