用来记录登录后使用命令的shell脚本

代码如下:

#/bin/bash
# history
#把以下代码直接粘贴到/etc/profile后
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/var/log/.hist
if [ -z $USER_IP  ]
then
  USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
   mkdir -p $HISTDIR
   chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
    mkdir -p $HISTDIR/${LOGNAME}
    chmod 300 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"
chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null

(0)

相关推荐

  • Powershell小技巧之用变量累积记录错误

    当你使用GC查询文件时,当你没有足够的权限你可能会错过不少错误.你可以使用"–ErrorAction SilentlyContinue"忽略这些错误. 有一个不错的方法来获取这些错误. 我们在Windows目录中查询所有PS脚本文件,将它的文件保存在$PSScripts,同时将错误日志记录在变量ErrorList中: 复制代码 代码如下: $PSScripts = Get-ChildItem -Path c:\windows -Filter *.ps1 -Recurse -ErrorA

  • linux中 shell 历史命令记录功能

    在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查,同时在服务器遭受黑客攻击后,也可以查询黑客登录服务器的历史命令操作.但是黑客在入侵后,为了抹除痕迹,会删除 .bash_history 文件,这个就需要合理备份这个文件了. 默认的 history 命令只能查看用户的历史操作记录,但是不能区分每个用户

  • shell将脚本输出结果记录到日志文件的实现

    使用tee命令: sh portal/main.sh |tee log.txt 获取脚本父类路径 cmddir="`dirname $0`" 以上这篇shell将脚本输出结果记录到日志文件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • PowerShell小技巧之定时记录操作系统行为

    作为系统管理员,有些时候是需要记录系统中的其他用户的一些操作行为的,例如:当系统管理员怀疑系统存在漏洞,且已经有被植入后门或者创建隐藏账户时,就需要对曾经登陆的用户进行监控,保存其打开或者操作过的文件.或者在另外一个场景,当黑客拿下一个普通权限的shell之后,想看看最近有哪些用户登陆过,操作过什么,以便根据用户习惯采取进一步行动获取更高权限,这个时候记录用户行为就显得很重要了. 可能有读者觉得此时安装个监控软件不就行了么,拜托,你入侵别人的系统,你装个监控软件,你把管理员试做无物么?这个时候P

  • PowerShell时间记录脚本

    #initialization $timeInterval = 30 #监测间隔 $record = @{"Coding" = 0; "Outlook Email" = 0; "Gmail" = 0; "Google Reader" = 0; "BBS" = 0; "Other Internet" = 0; "Documents" = 0;} $count = 0 $

  • shell如何记录用户的IP与命令详解

    记录输入的命令 history命令可以查看用户输入过的命令,一个典型history命令输出如下: 980 2017-05-29 20:17:37 cd - 981 2017-05-29 20:17:41 cat index.html 982 2017-05-29 20:20:11 vim index.html 983 2017-05-29 20:39:18 cd - 984 2017-05-29 20:39:25 cd /var/log/nginx/ 985 2017-05-29 20:39:2

  • Powershell小技巧之记录脚本的操作

    你可能知道在PS控制台(不是ISE编辑器),你可以打开脚本日志" 复制代码 代码如下: PS> Start-Transcript 你将记录所有输入的命令和所有的结果到这个文件.不幸的是它虽然运行在脚本中,但你不能准确看到脚本命令. 这里有一个在你脚本执行时记录全部命令方法.在你尝试这个方法之前,你可能会意识到这将增大日志文件的大小和降低脚本执行速度,因为在这个循环中,中间的迭代也将被记录. 下面命令将打开全部脚本的日志: 复制代码 代码如下: PS> Set-PSDebug -Tra

  • 用来记录登录后使用命令的shell脚本

    复制代码 代码如下: #/bin/bash# history#把以下代码直接粘贴到/etc/profile后USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`HISTDIR=/var/log/.histif [ -z $USER_IP  ]then  USER_IP=`hostname`fiif [ ! -d $HISTDIR ]then   mkdir -p $HISTDIR   chmod 777 $

  • 分享一个可以通过命令简写执行对应命令的Shell脚本

    本篇文章介绍一个可以通过命令简写执行对应命令的 shell 脚本. 假设这个 shell 脚本的名称为 tinyshell.sh. 在 Linux 下进行项目开发,经常会用到一些调试开发命令. 这些命令可能比较长,需要输入多个字符. 例如,Android 系统抓取全部 log 并包含 log 时间的命令是 adb logcat -b all -v threadtime. 抓取 log 是调试开发非常常见的操作,这个命令又很长,输入起来不方便. 为了简化输入,可以配置一些命令简写来对应比较长命令.

  • 如何利用 tee 命令调试shell脚本中的管道

    目录 实例 执行脚本 问题 原因 验证 总结 实例 下面是一个简单的脚本,脚本中 processid 函数的作用是查询指定进程名字的进程ID,在管理linux服务器的过程中,这个是很常见的功能,processid 函数作用是利用多层管道命令查询进程ID,以下是测试脚本源码 #!/bin/sh processid() { ipid=$(ps -ef | grep -w $1 | grep -v grep | awk '{print $2}') echo $ipid } case "$1"

  • Linux命令行和shell脚本编程宝典 Richard Blum

    第一个脚本文件 复制代码 代码如下: #!/bin/bashecho "This is my first bash code!"exit 0 重定向符号和数学计算 复制代码 代码如下: #!/bin/bashecho -n "The time and date are: "datevalue1=100  #等号前后不允许出现空格value2=$value1echo -n "value1="echo $value1echo -n "val

  • linux下监视进程 崩溃挂掉后自动重启的shell脚本

    ================================================= 本文为khler原作,转载必须确保本文完整并完整保留原作者信息及本文原始链接 Author: HeYuanHui E-mail: khler@163.com QQ: 23381103 MSN: pragmac@hotmail.com ================================================= 如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务

  • shell脚本命令行参数简介

    之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互.bash shell提供了命令行参数添加在命令后面的数据值).命令行选项修改命令行为的单字符值)和直接读取键盘输入. 1.命令行参数向shell脚本传递数据的最基本方式是使用命令行参数. 1)读取参数读取输入的参数的变量为位置参数,位置参数通过标准数字表示,其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直到$9为第九个参数.shell脚本自动将命令行参数赋值给各个位置变量.同时输入多个参数可以是数值也可

  • 使用shell脚本快速登录容器的实现步骤

    当我已经安装好容器后,例如mysql,Redis等,想要快捷登录时,可以用shell脚本一键登录. 首先要写好要用的脚本,例如登录mysql容器后,我们要输入mysql-u root -p123456.我们把它直接写入sqlpasswd.sh中. 然后再把他复制到mysql容器里,docker cp sqlpasswd.sh mysql-test:/.因为进入容器后会开另外一个shell来执行这个脚本.如下,我们在后面接上bash xx.sh,可在容器中执行. 效果图: 虚拟机脚本代码: #!/

  • shell命令执行hive脚本(hive交互)

    目录 Hive执行方式 方式1 方式二 方式三 Hive执行方式 Hive的hql命令执行方式有三种: 1.CLI 方式直接执行2.作为字符串通过shell调用hive –e执行(-S开启静默,去掉”OK”,”Time taken”)3.作为独立文件,通过shell调用 hive –f或hive –i执行执行 方式1 键入"hive",启动hive的cli交互模式.Set可以查看所有环境设置参数,并可以重设.其他命令如, Use database 选择库 quit/exit 退出Hiv

  • ubuntu16.04登录后无dash,无启动栏launch,无menu bar只有桌面背景的快速解决办法

    今天打开电脑,与往常一样输入用户名密码登录后,发现桌面上空空如也,启动栏launch,menu bar什么的都消失了,桌面上文件可以打开,但是无法拖动位置,无法关闭(因为menu bar没了,无法鼠标点击关闭), 经过苦苦搜索几个小时之后找到解决方案如下,记录下来方便有相同问题的人: 问题原因:unity Plugin 被误删或禁用了 解决方案: 1.尝试用 ctrl + alt + t 打开命令行 2.若 ctrl + alt + t 不起作用,则可在桌面右键选择打开终端 3.若上述方法仍不起

  • Python实现ssh批量登录并执行命令

    局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的.现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件,拷贝某些文件,批量关机等.如果一台一台得手工去操作,费时又费力,如果要进行多个操作就更麻烦啦. 或许你会想到网络同传,网络同传是什么?就是在一台电脑上把电脑装好,配置好,然后利用某些软件,如"联想网络同传"把系统原样拷贝过去,在装系统时很有用,只要在一台电脑上装好,同传以后所有的电脑都装

随机推荐