当前位置:首页 > 技术与方案 > Linux及应用

UNIX维护指南

(2012-09-26 15:46:46)

问:在UNIX系统中,如何安排时间和指定作业?
答:在文件/usr/spool/cron/crontabs/root中,包含有一些超级用户可以修改的内容,如:
10 8 * * 1 /usr/bin/calendar -
0 10 * **/usr/lib/cleantmp >/dev/null
50 17 * **/etc/shutdown -g0 -y
30 11 1 1 * tar cvf/kjhs/report/data/*>/dev/null
这四行的意义分别是:每个星期一的8:10am,运行calendar程序;每天的10:00am,运行/usr/lib/cleantmp程序,清理指定目录下的临时文件;每天的下午5:50pm关闭系统;每年的1月1日的11:30am,运行tar命令,备份数据文件。
超级用户可以通过修改这个文件,指定自己的作业计划,安排合理的时间来完成一些例行的工作任务。同时,超级用户还可以通过/usr/lib/cron/cron.allow和/usr/lib/cron/cron.deny两个文件来授权某个用户能安排自己的作业,让被授权的用户也能指定和修改cron作业。
问:怎样定期删除指定目录下的临时文件?
答:在文件/etc/default/cleantmp中,包含有如下类似的内容:
FILEAGING=7
TMPDIRS=/tmp /usr/tmp
其中FILEAGING设定最近7天的文件不删去,TMPDIRS指定存放有临时的、需要定期删除文件的目录/tmp和/usr/tmp。通过修改FILEAGING的参数,及TMPDIRS后指定的目录,可以达到定期删除某目录下过时文件,而保留最近多少天的文件。
该参数文件是通过运行/usr/lib/cleantmp程序来完成的,因此需要把该程序安排在/usr/spool/cron/crontabs/root文件中执行。
因此,结合以上的两个文件,在设定好正确的系统时间后,合理地安排指定的作业和运行的时间,就可以准时的完成你的一些日常的例行工作,给你的系统管理带来不少的便利。
问:在UNIX操作系统下如何维护文件系统的空区?
答:系统管理员应有规律的检查所有已安装文件系统的自由空间的数量,并删除所有用户目录下不需要的文件,找出并删除一些临时文件和名为core的文件,清除系统log文件。
问:在UNIX操作系统下如何显示自由空间?
答:用df命令可以发现文件系统上存在的自由空间的大小,该命令显示可用的"块"数等,一个块为512字节。例如:
#df -v
系统可能显示如下信息:
Mount Dir Filesystem blocks used free %used//dev/root 1030176 948246 81930 92%
问:在UNIX操作系统下如何显示磁盘使用情况?
答:可以用du命令显示一个目录中所有文件占用的块数,该命令对寻找非常大的目录和文件是很有用的。du命令的格式如下:
# du目录
如果没有给出目录名,则该命令显示当前目录中的块数。
例如键入:
#du /usr/nhxt
将显示目录/usr/nhxt中每个目录的名字以及该目录下所有文件和目录使用的块数。
问:在UNIX操作系统下如何显示用户占用的块数?
答:使用quot命令可以显示用户清单及他们各自在文件系统中占用的块数,命令格式如下:
#quot specialfile
specialfile必须是对应于硬盘或软盘的特殊文件名。
例如,为了显示硬盘驱动器/dev/hd00上已安装的文件系统中所有者的名字,键入:
# quot /dev/hd00
将显示在文件系统中有文件的用户名及这些文件的块数。
问:在UNIX操作系统下如何查找core文件和临时文件?
答:可以用find命令查找core和临时文件。当一个程序产生一个不能恢复的错误时,unix系统将有可能创建一个core文件。临时文件是程序执行期间由中间步骤产生的数据,如果一个程序因错误或被用户提前终止,则可能留下这些临时文件。
一般情况下,用户并不使用core和临时文件,因此,可以删除这些文件。查找core和临时文件的最好的方法是查找在适当的时间周期未被存取的文件。例如要查找在/usr目录中所有在一周内未被存取的core文件,键入:
# find/usr -name core -atime +7 -print
问:在UNIX操作系统下如何清除log文件内容?
答:在unix系统的使用过程中会产生一些有关硬件和软件及系统使用情况的信息,这些信息放于一些系统文件中,以供系统管理员需要时查阅,这些文件称为log文件。当一个新信息产生时,系统自动地将信息加到相应log文件的结尾处,这样导致每个log文件会越来越大。所以定期清除log文件内容是很必要的。
如下清除log文件内容:
#cat filename
filename是要清除的log文件的全路径名,下面是log文件的文件名;
/etc/ddate     /usr/adm/pacct
/usr/adm/messages /etc/wtmp
/usr/adm/sulog   /usr/lib/cron/log
问:在UNIX操作系统下如何扩充文件系统?
答:如果系统的自由空间常常不足,最好是通过创建并安装一个新文件系统来扩充系统的存储空间。一旦安装了新文件系统,就可以用它进行工作。甚至把原来自由空间不足的文件系统中的用户目录或系统目录转移到它上面。
经常缺少自由空间的原因是系统上用户太多,超过了当前硬盘能合理处理的范围,或者是系统上的目录和文件太多。在这种情况下,应该创建一个新文件系统改善系统运行。
问:本地的Unix系统如何与远程的Unix系统进行命令调用?
答:利用NFS协议建立起来的on命令可以实现,并在此基础上实现了丰富的远程控制功能,可广泛地应用于局域网和广域网。
具体还有以下系统要求:
客户端和远程系统需同时运行Unix系统,HP-UX、Sun Solaris等均可;
客户端设置为NFS服务器,远程系统设置为NFS客户机,这样可将客户端环境及工作目录仿真到远程系统,利用远程系统丰富的资源,执行命令并将结果返回到客户端;
通过inetd服务进程在远程系统配置好rexd服务,通过RPC(Remote Process Control),响应客户端运行的on命令远程调用请求;
实现远程调用的用户要在两端系统中拥有相同的UserID和GroupID;
客户端只能以普通用户而非超级用户(root)执行on命令操作;
在利用该机制进行软件开发时,两端操作系统版本号要保持一致,否则会导致生成的二进制代码不兼容的问题。
设置步骤
以HP-UX 10.20为例介绍远程调用的具体实现过程(在其他Unix系统上,如SCO OpenServer上同样调试通过)。以下配置均需超级用户(root)执行。
1.远程系统
设置并启动NFS客户机 :
# vi /etc/rc.config.d/nfs.conf
nfs.client=1
# /sbin/init.d/nfs.client start
设置并启动rexd后台服务程序,自动响应客户端远程调用请求:
# vi /etc/inetd.conf
rpc stream tcp nowait root /usr/sbin/rpc.rexd 100017 1 rpc.rexd
# inetd -c
2.客户端系统
设置并启动NFS服务器:
# vi /etc/rc.config.d/nfs.conf
nfs.server=1
# /sbin/init.d/nfs.server start
假设远程主机名为server,将本地资源授权给远程系统:
# vi /etc/exports
/ -root = server
# exportfs -ua
# exportfs -a
这样一来,当远程系统rpc.rexd收到客户端on远程调用请求时,自动检查客户端配置情况,如授权许可则通过NFS协议将客户端用户工作目录自动挂接到 /usr/spool/rexd/rexdXXXXXX,其中XXXXXX是运行rexd的进程序列号。以上任何一个环节出错都会导致远程调用失败并返回相应错误信息。
命令调用
on 命令只允许以普通用户执行,格式如下:
on [ -i | -n ] [ -d ] hostname [command]
例如:
on -i server
on server ls -l /home/yyf
其中:
● -i: 表示交互式操作;
● -n: 命令执行期间无需输入参数;
● -d: 调试模式;
● hostname: 远程主机名;
● command: 要执行的命令,如果省略则进入一个交互式的shell提示符下,以后发送的每一个命令都将在远程主机仿真的用户工作目录下执行(如/var/spool/rexd/rexda00756/home/yyf)。
安全考虑
● 为最大限度地保护本地文件系统,以防止非法存取,客户端设置/etc/exports时应通过授权给确定的远程主机普通用户而非超级用户操作,明确只能在指定的远程主机上调用命令。如:
/home -rw = host1:host2
/usr -rw = host3
● 在远程系统上编辑安全设置文件:
/var/adm/inetd.sec
仅限制在特定的客户机上执行on命令调用。
● 清理远程系统中不必要的普通用户,防止客户端任意用户执行远程命令调用。
● 在远程系统上启动rpc.rexd服务进程时带上 -r 参数,增强对客户端系统的安全检查,或带上 -l logfile参数将每次远程调用请求信息(包括诊断、警告、出错等)记入特定日志文件,供管理员定期监控分析。
问:在UNIX下如何设置匿名FTP服务器?
答:set up anonymous ftp
csh
cd ~ftp
chmod 555 .;chown ftp .;chgrp ftp .
mkdir bin etc pub shlib dev
chown root bin etc shlib dev
chmod 555 bin etc dev shlib
chown ftp pub
chmod 777 pub
cd bin
cp /bin/sh /bin/ls /bin/pwd .
chmod 111 sh ls pwd
cd ../etc
cp /etc/passwd /etc/group .
chmod 444 passwd group
cd ../shlib
cp /shlib/libc_s .
cd ..
find /dev/socksys -print |cpio -dumpv .
这个程序在SCO UNIX上实验通过 。
问:我的两台电脑一新一旧,一台是PIII/512M Ram/40G,另一台是用了好几年的486,怎么把它们联起来?
答:可以分别安装Linux和Windows两种操作系统。
Linux和Windows的网络配置:首先你得有两块网卡,还得有一根网线,最好弄一个小HUB,不然的话得矫正一下网线。把两台机器的IP配到一起来。在Windows中修改TCP/IP属性,就可以了。在Linux中,修改/etc/sysconfig/network,也可通过XWindow下的Linuxconfig或NetConfig。比如都加到C网段:191.168.1.1-255。
之后,Ping一下对方,如果通了,那就成功在即了。在RedHat装好之后,HTTP和FTP应该都已配置好了。所以你可以在Windows中用你喜爱的浏览器比如Opera打开你的Linux的主页,现在可能只能直接用IP地址,正常的话应该看得到Apache的欢迎页面。之后你可以Ftp/Telnet到Linux上。注意Root一般是不可以用来登录的。
是不是想在Windows的网上邻居中看到Linux的机器呢?安装好RedHat或者其他Linux后,进行一些配置就能和Windows连了。首先配一下Samba,在/etc/smb.conf中,稍加修改Workgroup,和security=user,因为一般不会有一台NT的主域控制器。不然的话,就改成security=server。重新启动一下smbd就可以了(/etc/rc.d/init.d/smb stop/start)。接着在Windows中Find Computer,打入你的Linux的机器名,几秒钟之后应该会找到,如果可以打开Linux的机器图标,应该就可以看到缺省的两个公共目录-public。其中还有很多问题,可参照samba的Doc。
 

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号