分类目录归档:Shell脚本

Linux系统用户管理之禁止用户登录

一、问题描述

今天在CentOS上切换用户的时候提示This account is currently not available

su elasticsearch
This account is currently not available.

开始并没有理解这句话,想当然的认为是用户不存在。

注:用户不存在的提示是user does not exist

su elasticsearch2
su: user elasticsearch2 does not exist

继续阅读

常用shell命令二(ls)

ls大概是Linux下使用很频繁的命令了,你未必知道他的强大

0、列出当前目录下的文件,按修改时间排序

[root@izj6cfhaw27k49x8usszs3z niliu]# ls -alt
total 535128
-rw-rw---- 1 mysql mysql    507904 Nov 21 20:28 wp_postmeta.ibd
-rw-rw---- 1 mysql mysql    786432 Nov 21 20:28 wp_options.ibd
drwxr-xr-x 7 mysql mysql      4096 Nov 17 10:57 ..
-rw-rw---- 1 mysql mysql    131072 Aug 31 09:28 wp_commentmeta.ibd
-rw-rw---- 1 mysql mysql    114688 Nov 23  2018 midoks_weixin_robot_extends.ibd
-rw-rw---- 1 mysql mysql     98304 Nov 23  2018 midoks_weixin_robot.ibd
-rw-rw---- 1 mysql mysql     98304 Nov 23  2018 midoks_weixin_robot_menu.ibd

继续阅读

shell脚本实用初级入门二

最近朋友用shell写自动化测试脚本, 请求接口并处理一些逻辑。我写的也不多,只能边查边给他提供帮助。

以下就是这个过程形成的知识点【发现shell又强大,又弱小[笑哭]】

0、把数组转成字符串
本以为像其他语言,有现成的方法直接转换,比如PHP的implode(), Golang的strings.Join(strSlice, “,”)

结果发现Shell并没有,沮丧~
继续阅读

常用shell命令-进程查看

一、查看进程,ps aux

ps aux | grep 'niliu'
#以上命令想必你一定不陌生,那么如果想快速知道每行的含义呢
[root@Mcqp15t170 chuanbo7]# ps aux | grep 'USER'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      5637  0.0  0.0 112640   960 pts/0    S+   19:28   0:00 grep --color=auto USER

每一列参数说明
+---------+--------------------------------------------------------------------------------------------------------------------+
| name    | info                                                                                                               |
+---------+--------------------------------------------------------------------------------------------------------------------+
| USER    | 进程所有者用户名                                                                                                    |
| PID     | 进程标识符                                                                                                          |
| %CPU    | 该进程使用CPU百分比                                                                                                 |
| %MEM    | 该进程使用物理内存百分比                                                                                             |
| VSZ     | 该进程使用的虚拟内存(KB)                                                                                            |
| RSS     | 该进程占有的固定内存(KB)                                                                                            |
| TTY     | 终端名称                                                                                                           |
| STAT    | 进程状态(具体状态含义参考下文进程状态)                                                                                |
| START   | 进程开始执行时间(当天显示小时:分钟;一天之前显示月:日, 一年之前的还没有遇到过)                                           |
| TIME    | 进程实际占有CPU总时间(i:s)                                                                                          |
| COMMAND | 启动任务命令行包括参数                                                                                              |
+---------+--------------------------------------------------------------------------------------------------------------------+


# 其实ps aux就行了,但是如果进程太大,不方便查看

ps aux | grep 'filterfeeds'
root     16803  8.6  0.3 368496 43760 ?        S    17:37   4:27 /usr/local/sinasrv2/bin/php /data1/www/htdocs/energy.tv.weibo.cn/public/cli.php request_uri=/cli_filterfeeds/index/proc_total/8/proc_num/6
root     16870 18.6  0.4 383204 59104 ?        R    17:37   9:37 /usr/local/sinasrv2/bin/php /data1/www/htdocs/energy.tv.weibo.cn/public/cli.php request_uri=/cli_filterfeeds/index/proc_total/8/proc_num/7

进程状态:

D   不可中断睡眠 (通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
R   正在运行或可运行(在运行队列排队中)
S   可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
T   已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行
W   正在换页(2.6.内核之前有效)
X   死进程 (未开启)
Z   僵尸进程  进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的
<   高优先级(not nice to other users)
N   低优先级(nice to other users)
L   页面锁定在内存(实时和定制的IO)
s   一个信息头
l   多线程(使用 CLONE_THREAD,像NPTL的pthreads的那样)
+   在前台进程组 

继续阅读

shell脚本中关联数组及其遍历

shell中(version >= 4.1.2)也存在关联数组(associated array),跟PHP的关联数据很像。

查看shell版本

bash -version

GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

继续阅读