日期:2014-05-16  浏览次数:20762 次

linuxt笔记2

linuxt笔记2
2011年06月13日
  每一行任务配置记录,都包括6个数据字段,如表6-1,分别表示不同含义
  分 时 日 月 周
  除了可以使用*,- ,/
  减号:如,1-4
  逗号:“,”可以表示一个间隔不连续范围,如“3,4,6,8”
  斜杠符号“/”可以用来指定间隔频率,如在日期字段中的“*/3”表示每隔3天
  下面将通过几个实例展示crontab计划任务的配置、查看和删除等管理操作。
  例如:由root用户设置一份crontab计划任务列表,完成如下任务
  每天早7:50 自动开启sshd服务,22点50时关闭ssd服务。
  每隔五天清空一次ftp服务器公共目录“/var/ftp/pub”中的数据
  每周六的7:30时重新启动系统中的httpd服务
  每周一、周三、迥五的下午17:30时,使用tar命令自动备份“/etc/httpd”
  [root@localhost ~]#crontab -e
  50 7 * * * /sbin/service sshd start
  50 22 * * * /sbin/service sshd stop
  0 * */5 * * /bin/rm- rf /var/ftp/pub/*
  30 7 * * 6 /sbin/service httpd restart
  30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd
  例:为jerry 用户设置计划任务,在每周日晚上的23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存存为“pwd.txt”
  [root@localhost ~]#crontab -e -u jerry
  55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
  因各计划任务在执行时并不需要用户登录,所以在任务配置记录中的命令使用绝对路径,以避免因缺少执行路径而无法执行
  命令的情况。另外,在设置非每每分钏都执行的任务时,“分钟字段也应该填写一个具体的时间数值,而不要保留为默认的
  *,否则将会在每分钟执行一次计划任务。
  查看,用户的计划任务列表
  [root@localhost ~]#crontab -l
  50 7 * * * /sbin/service sshd start
  50 22 * * * /sbin/service sshd stop
  0 * */5 * * /bin/rm -rf /var/ftp/pub/*
  30 7 * * 6 /sbin/service httpd restart
  30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd
  确认jerry用户的计划任务列表内容
  [root@localhost ~]#crontab -l -u jerry
  55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
  [root@localhost ~]#ls -l /var/spool/cron/jerry
  -rw------ 1 root root 56 05-18 16:39 /var/spool/cron/jerry
  3)删除用户的计划任务列表
  例,使用jerry用户登录后,查看并删除自己的计划任务列表
  [jerry@localhost ~]$crontab -l
  55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
  [jerry@localhost ~]$crontab -r
  [jerry@localhost ~]$crontab -l
  no crontab for jerry
  在设置用户的crontab计划任务的过程中,由于每一条记录只能运行一行命令,难以完成更复杂的系统管理任务操作
  ,因此在实际工作中,当需要按照同一周期运行多项任务时,通常会将相关命令操作编写成脚本文件,然后在计划
  任务配置中加载该脚本并执行。从下一章开始将会学习shell管理脚本的编写。
  第七章SHELL命令
  学完本章内容,学员将能够解决以下问题
  1,公司某员工辞职后,在linux服务器中留下了此员工创建的大量无用 文件,如何快速准确地删除这些文件
  2,由于服务器空间有限,公司规定文件服务器上完全共享文件夹每周五下班前定期删除清空。如何编写shell脚本来
  解决问题?
  3,如何编写shell脚本实现定期归档压缩指定文件夹。
  英语:
  1,script:脚本,手稿
  2,express:表这式。
  3,export:输出,导出
  4,read:读取,阅读
  5,echo:回声,回显
  6,alias:别名,绰号
  7,cut:切割,切分
  8,bash:猛击,这里指一种shell
  9,bourne:小溪,目的地。
  10,history:历史
  11,utility:有效,功用
  12,awk:笨拙的,棘手的
  13,source:源,来源。
  本章重点:重定向和管道的应用。
  shell变量的应用
  shell脚本的编写和执行
  本章难点:shell变量作用范围
  有bsh,csh,ksh,zsh,bash
  查看当前linux系统中能够使用shell程序的列表
  [root@localhost ~]# cat /etc/shells
  /bin/sh
  /bin/bash
  /sbin/nologin
  /bin/tcsh
  /bin/csh
  /bin/ksh
  确认shell程序中存须的部分链接文件
  ;
  [root@localhost ~]#ls -l /bin/*sh
  临时切换至新的shell环境
  直接输入其他shell程序的名称,即可切换到新的shell环境,新运行的shell程序作为当前shell程序的子进程
  返回,exit, or ctrl+D
  例: [root@localhost ~]#ksh
  #help cd
  例如:使用teacher用户登录系统,并将自己的登录shell更改为tcsh.
  [teacher@localhost ~]$grep "teacher" /etc/passwd
  teacher:x:500:500:teacher:/home/teacher:/bin/bash
  [teacher@localhost ~]$chsh
  changing shell for teacher
  password
  new shell [/bin/bash]: /bin/tcsh
  shell changed
  [teacher@localhost ~]$grep teacher /etc/passwd
  teacher:x:500:500:teacher:/home/teacher:/bin/tcsh
  使用chsh命令设置了新的登录shell后,新的登录shell,将在该用户下一次登录系统时生效。
  3,由管理员(root)更改其他用户的登录shell
  root用户可以通过直接修改“/etc/passwd”文件的方式来改变用户的登录shell,也可以使用usermod命令进行更改
  例:由root用户使用usermod命令将teacher用户的登录shell重新修改为“/bin/bash”
  [root@localhost ~]#usermod -s /bin/bash teacher
  [root@localhost ~]#grep "teacher" /etc/passwd
  bash常用功能
  历史记录命令
  [root@localhost ~]#which fdisk
  /sbin/fdisk
  [root@localhost ~]#pwd
  /ro