免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4199 | 回复: 17
打印 上一主题 下一主题

求救!关键词:history fc accton[已解决!] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-08 14:17 |只看该作者 |倒序浏览
大家好!

最近遇到一个问题:

需求:记录每个用户的所有操作到指定文件。

环境:SUNOS 5.6

描述:

记得unix有命令history可以查看每个用户的操作,所以希望在solaris上找到相同的程序,稍作修改即可。不幸的是solaris本身并没有history这个命令。

希望通过对AIX下的history的研究,在solaris上实现该功能。

查阅大量资料,有以下发现:

1,history是fc -l命令的别名

2, cat /bin/fc (AIX)
command=`/usr/bin/basename $0`          # Invoke the ksh builtin
if [ "$command" = "type" ]
then
        whence -v "$@"
elif [ "$command" = "hash" ]
then
        alias -t - "$@"
else
        $command "$@"
fi

3,solaris下无此别名,但在/bin/下仍有fc
cat /bin/fc  (solaris)
cmd=`basename $0`
$cmd "$@"

4,fc输出文件为用户主目录下: .sh_history
该文件应该有大小,行数或时间限制


请教达人高手如何在solaris下使用fc,并将输出重定向到其它文件?


___________________________________________________________



答案:
1,vi .profile
SHELL=/bin/ksh;export SHELL
HISTFILE=/opt/log/my_history;export HISTFILE
如果你有大小要求:
HISTSIZE=xxx;export HISTFILE

如果建立用户的时候指定了sh,还要到/etc/passwd修改下默认sh就可以了

用fc -l查看,觉得不方便自己加个别名就可以了

2,/usr/lib/acct/accton /opt/mylog/pacct
将/usr/lib/acct/startup加到启动脚本里面
需要看的时候
cp /opt/mylog/pacct /var/adm/pacct
然后用lastcomm查看所有记录,用lastcomm username查看指定用户。

SUN工程师称该方案不占用系统多少资源,可以放心使用。

谢谢大家尤其是2位版主的帮助!

[ 本帖最后由 c5085 于 2006-2-10 17:46 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-02-08 14:40 |只看该作者
solaris上可以用accton然后用lastcomm看.

论坛徽章:
0
3 [报告]
发表于 2006-02-08 15:05 |只看该作者
谢谢版主,但是在SUNOS 5.6 的/usr/sbin/acct/ 目录不存在,也没有acctcms这条命令。
lastcomm存在,但是无法启动。因为/usr/sbin/acct/目录不存在,也无法启动unacct等命令。
在AIX发现相关程序。但是如何解决solaris下面的问题呢?望版主不吝赐教.

论坛徽章:
0
4 [报告]
发表于 2006-02-08 15:07 |只看该作者
solaris下fc是可以用的
至于.sh_history,是当用户的SHELL是ksh时才会有的,如果是bash的话,就是.bash_history

论坛徽章:
0
5 [报告]
发表于 2006-02-08 15:11 |只看该作者
在/usr/bin/下找到了acctcom,自建了/var/adm/acct目录后可以使用了。谢谢版主!

论坛徽章:
0
6 [报告]
发表于 2006-02-08 15:12 |只看该作者
原帖由 doni 于 2006-2-8 15:07 发表
solaris下fc是可以用的
至于.sh_history,是当用户的SHELL是ksh时才会有的,如果是bash的话,就是.bash_history



能不能详细说下fc怎么使用呢?

论坛徽章:
0
7 [报告]
发表于 2006-02-08 15:24 |只看该作者
但是运行结果有问题:
yn-comm2#lastcomm
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           root     systty         0.00 secs Thu Jan  1 08:00
?           786433   ??           290.40 secs Fri Jan 15 14:13

好像不是操作记录啊?

论坛徽章:
0
8 [报告]
发表于 2006-02-08 17:11 |只看该作者
Solaris操作系统可以通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,需要执行/usr/lib/acct目录下的accton文件,格式如下/usr/lib/acct/accton /var/adm/pacct.然后,可以通过lastcomm看你的操作的用户以及操作的命令了.或者,可以起用bash也有一定的作用。

论坛徽章:
0
9 [报告]
发表于 2006-02-08 17:21 |只看该作者
原帖由 c5085 于 2006-2-8 15:12 发表



能不能详细说下fc怎么使用呢?


将用户默认的SHELL设成ksh或bash即可,fc -l就可以列出最近用过的命令了

论坛徽章:
0
10 [报告]
发表于 2006-02-09 10:08 |只看该作者
楼上大哥,我希望可以把fc -l的结果自动保存到其它的文件中,该如何做呢?

还有,fc的纪录里面不记录操作的时间,是否可以加上时间呢?

拜谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP