SUSE12 SP1进入单用户模式
SUSE12进入单用户模式已不同于以往的版本,目前度娘上未找到解决方案。现在介绍下进入单用户模式的方法。
1、 启动系统后不停按上下光标键,以防跳过,然后按e进入编辑状态:
2、 找到linux开头的这一行:
在此处添加rw 1 二项内容:
3、编辑完成后,按ctrl+x启动系统,此时出现如下提示,输入root口令登录系统
4、验证当前为单用户模式,即可进行后续操作。
SUSE12 SP1进入单用户模式
SUSE12进入单用户模式已不同于以往的版本,目前度娘上未找到解决方案。现在介绍下进入单用户模式的方法。
1、 启动系统后不停按上下光标键,以防跳过,然后按e进入编辑状态:
2、 找到linux开头的这一行:
在此处添加rw 1 二项内容:
3、编辑完成后,按ctrl+x启动系统,此时出现如下提示,输入root口令登录系统
4、验证当前为单用户模式,即可进行后续操作。
How to enter single user mode in SUSE 12 Linux
在这篇简短的文章中,我们将向你介绍在 SUSE 12 Linux 中进入单用户模式的步骤。在排除系统主要问题时,单用户模式始终是首选。单用户模式禁用网络并且没有其他用户登录,你可以排除许多多用户系统的情况,可以帮助你快速排除故障。单用户模式最常见的一种用处是重置忘记的 root 密码。
1、暂停启动过程
首先,你需要拥有机器的控制台才能进入单用户模式。如果它是虚拟机那就是虚拟机控制台,如果它是物理机那么你需要连接它的 iLO/串口控制台。重启系统并在 GRUB 启动菜单中按任意键停止内核的自动启动。
Kernel selection menu at boot in SUSE 12
2、编辑内核的启动选项
进入上面的页面后,在所选内核(通常是你首选的最新内核)上按 e 更新其启动选项。你会看到下面的页面。
grub2 edits in SUSE 12
现在,向下滚动到内核引导行,并在行尾添加 init=/bin/bash,如下所示。
Edit to boot in single user shell
3、引导编辑后的内核
现在按 Ctrl-x 或 F10 来启动这个编辑过的内核。内核将以单用户模式启动,你将看到 # 号提示符,即有服务器的 root 访问权限。此时,根文件系统以只读模式挂载。因此,你对系统所做的任何更改都不会被保存。
运行以下命令以将根文件系统重新挂载为可重写入的。
kerneltalks:/ # mount -o remount,rw /
这就完成了!继续在单用户模式中做你必要的事情吧。完成后不要忘了重启服务器引导到普通多用户模式。
nginx取 $remote_addr 当做真实ip,而事实上,$http_X_Forwarded_For 才是用户真实ip,$remote_addr只是代理上一层的地址
解决方案:
在 http 模块 加
set_real_ip_from 172.17.10.125; #上一层代理IP地址
real_ip_header X-Forwarded-For;
real_ip_recursive on;
添加之后启动nginx报错:
nginx: [emerg] unknown directive “set_real_ip_from” in /home/lnidmp/nginx/conf/nginx.conf:26
需要添加realip模块,重新编译nginx
1、cd /usr/local/nginx-1.15.12
2、./configure –prefix=/usr/cmcc/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_realip_module
3、make && make install
温馨提示:
1、set_real_ip_from 是指接受从哪个信任前代理处获得真实用户ip
2、real_ip_header 是指从接收到报文的哪个http首部去获取前代理传送的用户ip
3、real_ip_recursive 是否递归地排除直至得到用户ip(默认为off)
首先,real_ip_header 指定一个http首部名称,默认是X-Real-Ip,假设用默认值的话,nginx在接收到报文后,会查看http首部X-Real-Ip。
(1)如果有1个IP,它会去核对,发送方的ip是否在set_real_ip_from指定的信任ip列表中。如果是被信任的,它会去认为这个X-Real-Ip中的IP值是前代理告诉自己的,用户的真实IP值,于是,它会将该值赋值给自身的$remote_addr变量;如果不被信任,那么将不作处理,那么$remote_addr还是发送方的ip地址。
(2)如果X-Real-Ip有多个IP值,比如前一方代理是这么设置的:proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
得到的是一串IP,那么此时real_ip_recursive 的值就至关重要了。nginx将会从ip列表的右到左,去比较set_real_ip_from 的信任列表中的ip。如果real_ip_recursive为off,那么,当最右边一个IP,发现是信任IP,即认为下一个IP(右边第二个)就是用户的真正IP;如果real_ip_recursive为on,那么将从右到左依次比较,知道找到一个不是信任IP为止。然后同样把IP值复制给$remote_addr。
生产nginx配置文件如下:
user www; worker_processes 10; worker_rlimit_nofile 51200; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; error_log /data/logs/nginx_error.log crit; #pid logs/nginx.pid; events { use epoll; worker_connections 51200; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; server_names_hash_bucket_size 128; server_tokens off; expires 1h; sendfile off; tcp_nopush on; fastcgi_connect_timeout 1200s; fastcgi_send_timeout 1200s; fastcgi_read_timeout 1200s; fastcgi_buffer_size 128k; fastcgi_buffers 8 128k;#8 128 fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; keepalive_timeout 65; tcp_nodelay on; error_page 404 /; gzip on; gzip_min_length 2048; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_types text/plain css html application/xml application/x-javascript ; set_real_ip_from 上一层代理IP地址; real_ip_recursive on; real_ip_header X-Forwarded-For; log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; #################### include ################################################ include conf.d/*.conf; }
Mysql 里查看正在执行的语句,使用show processlist时会看到所有用户所有database的查询。
尝试 show processlist like 的方法报错,搜索下发现processlist的show 方式是不支持筛选的,实际上processlist就是information_schema的一个表,如果想筛选,可以使用下边的语句:
select * from information_schema.processlist where [ID|USER|HOST|DB|COMMAND|TIME|STATE|INFO] like “%some condition%”;
例如查找不在Sleep 状态的连接:
select * from information_schema.processlist where COMMAND != ‘Sleep’;
示例:
查询 show processlist 添加限制条件;
select * from information_schema.processlist where COMMAND != ‘Sleep’ and TIME>=0 and TIME <120;
我们都知道通过route命令可以为linux添加静态路由,但是当你的服务器重启后,路由信息就会丢失,可能你会说我可以写到profile文件或者rc.local文件中,如果你没有重启主机只是重启网络服务呢,路由信息依旧会丢。今天小编来和你共同分享一下如何配置永久的静态路由信息。
首先让我们查看一下当前机器的路由表,执行如下命令:route -n
当前本机只有一条默认路由,网关是192.168.142.1
然后我们确认一下当前工作的网卡,这里我们使用的是eth0。
补充:如果机器中存在多块网卡,我们可以为不同网卡指定不同的静态路由。
比如还有eth1,eht2;那么方法是一样的,我们依次为每块网卡创建一个对应的路由配置文件。route-eth0;route-eth1;route-eth2
接下来让我们添加两条静态路由,访问192.168.142.100时通过192.168.142.10;访问192.168.142.200时通过192.168.142.20。执行如下命令:vim /etc/sysconfig/network-scripts/route-eth0
添加如下信息:
192.168.142.100/32 via 192.168.142.10
192.168.142.200/32 via 192.168.142.20
保存并退出。
然后我们需要重新重启一下网络服务:service network restart
最后让我们验证一下:route -n;发现此时路由信息已经添加到路由表了,这时无论是重启主机还是重启网络服务路由信息都不会丢了。
1. 如果按照分隔符所分割的字段的长度不定则需要用到使用循环来处理每一个字段;
要处理的文本
[root@hadoop usr]# head -n 3 business.txt
AIR 2013-09-01 4403 1348662.0
AIR 2013-09-02 26449 6701268.0
AIR 2013-09-03 45262 1.3755425E7
循环处理
[root@hadoop usr]# head -n 3 business.txt | awk ‘{for(i=1;i<=NF;i++){print $i;}}’
AIR
2013-09-01
4403
1348662.0
AIR
2013-09-02
26449
6701268.0
AIR
2013-09-03
45262
1.3755425E7
以上可以做到列转行(另一种列转行的更加简单的方式是改变RS)
不转行
[root@hadoop usr]# head -n 3 business.txt | awk ‘{for(i=1;i<=NF;i++){to=to”||”$i};print to}’
||AIR||2013-09-01||4403||1348662.0
||AIR||2013-09-01||4403||1348662.0||AIR||2013-09-02||26449||6701268.0
||AIR||2013-09-01||4403||1348662.0||AIR||2013-09-02||26449||6701268.0||AIR||2013-09-03||45262||1.3755425E7
———————
版权声明:本文为CSDN博主「韩王-信」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weihongrao/article/details/12851771
前提当然是报表都有相同数量的列
less yourfile|awk ‘{print NF;exit;}’
NF是awk的内置变量,表示当前记录里域的个数,不难看出,这个命令实际上是输出了报表第一行的列数。