» 网友学堂 » LINUX教程 » linux系统管理的一些代码
linux系统管理的一些代码
作者:ljjk5 发表时间:2007-11-26 16:55 阅读:491次 在百度搜索相关内容


一. shell编程在系统管理中的应用
下面示例是一个完成自动添加用户并对用户进行适当设置
#!/bin/bash
# Created by mayujun . 2004.10
if test $# -ne 1 ;then
echo "usage:command username"
exit
fi

/usr/sbin/useradd -g web -s /bin/ssh-dummy-shell -d /data/$1 $1
/bin/chmod 755 /data/$1
/bin/mkdir /data/$1/bin
#
/usr/bin/chattr -i /data/ssh-dummy-shell
/usr/bin/chattr -i /data/sftp-server

/bin/ln /data/ssh-dummy-shell /data/$1/bin/ssh-dummy-shell
/bin/ln /data/sftp-server /data/$1/bin/sftp-server

/usr/bin/chattr +i /data/ssh-dummy-shell
/usr/bin/chattr +i /data/sftp-server

/usr/bin/chattr +i /data/$1/bin/
echo "please input user:$1's password"
/usr/bin/passwd $1

二. Cron在系统管理中的应用
1.下面是一个bash脚本程序mv存放在/squid/bin/目录下完成对日志文件的移动
#!/bin/bash
mv /squid/var/logs/access.log.0 /accesslog/`date +%Y-%m-%d-%A`
2.下面的cron配置信息,定期执行一些任务。
#00 0 * * 0 rm -f /accesslog/*Sunday
#00 0 * * 1 rm -f /accesslog/*Monday
#00 0 * * 2 rm -f /accesslog/*Tuesday
#00 0 * * 3 rm -f /accesslog/*Wednesday
#00 0 * * 4 rm -f /accesslog/*Thursday
#00 0 * * 5 rm -f /accesslog /*Friday
#00 0 * * 6 rm -f /accesslog/*Saturday
00 0 * * * /squid/sbin/squid -k rotate
00 1 * * * /squid/bin/mv
00 3 * * * /sbin/shutdown -r now
00 */1 * * * /squid/bin/squidrestart >> /squid/bin/squidrestart_log 2>>/squid/bin/squidrestart_log
三. 磁盘配额的应用
以如何完成拥有大量用户(用于设置了磁盘配额)的Linux系统的迁移工作(迁移到另一台Linux机器)为例。
1. 新Linux系统的磁盘配额设置略(参考上课时的试验指导)
2. 老Linux系统的/etc/passwd,/etc/shadow,/etc/groups文件要拷贝到新Linux系统中去覆盖原有文件。
3. 用户配额数据库的迁移:把对应分区下的quota.user(或者aquota.user)和quota.group(或者aquota.group)文件拷贝到新系统中的对应分区的根目录下。注意quota.user文件可能需要使用convertquota命令转换成aquota.user(直接改名不行,因为格式不一样)。
4. 其它相关信息的迁移。
四. 系统维护中经常使用的一些有用指令(根据自己的实际情况,这里仅仅是很少几个)
1. Tail 查看正在变化的文件,及时反映文件的变化
2. Crontab 操作cron的配置信息
3. Chmod 此命令简单,但是经常要用
4. Ps –aux│grep name│wc –l
5. Cut –f1 –d- filename │sort –u │wc -l