xml地图|网站地图|网站标签 [设为首页] [加入收藏]
对一个增强和广义的删除logfile的脚本的理解,
分类:操作系统

 

使用linux虚拟机时,通常会用到yum命令来安装软件,然而这个命令需要连外网下载软件,用maven下载jar包也需要外网。虚拟机在内网可以互相ping通,然而ping不了外网,于是通过试验,终于找到了解决方案:

本文所选的例子来自于《Advanced Bash-scripting Gudie》一书,译者 杨春敏 黄毅

最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用PHP写的,然后总结了下定时任务的用法,但是在这里主要写的是关于crontab命令的用法,使用过程中遇到不少问题,例如no crontab for root等问题。

1.在物理机的cmd命令行中,使用ipconfig命令,查看IP配置,由图可知,物理机的子网IP是192.168.0.0,子网掩码是255.255.255.0,网关是192.168.0.1

cleanup:一个增强和广义的删除logfile的脚本

一、Linux系统安装crontab服务

  1.确认crontab是否安装

  # crontab -l

  如果报 “command not found” ,就说明该crontab服务没有安装

  如果报 “no crontab for root” ,就说明已经安装crontab服务了,请跳过步骤一,至于出现这个提示的解决办法请往下看。

 

  2.安装crontab服务

  centos系统,请执行以下命令:

style="color: #999999">//vixie-cron软件包是cron的主程序;  

# yum install -y vixie-cron  

style="color: #999999">//rontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序

# yum install crontabs

//启动服务   

# /sbin/service crond start   或者  systemctl crond start

//加入开机自动启动

# chkconfig --level 35 crond on

  ubuntu、debian系统,请执行以下命令:

//安装crontab服务  

# apt-get install cron  

//启动crontab服务(同时还有service cron stop 停止服务,service cron restart 重启服务)

# service cron start   

 

  3.测试是否安装成功了

  继续执行上面第一条命令:crontab -l

  这时会出现 “no crontab for root” 这是由于你还没有创建任何定时任务或者命令打错,即没有使用crontab -e命令去创建任何任务。但是到了这里,你的安装基本可以了。crontab命令详情请看下步

  

C:Usershuanongying>ipconfig

#!/bin/bash
#清除,版本3

二、crontab命令详解

  1.crontab命令主要有3个参数:

  -e :编辑用户的crontab

  -l :列出用户的crontab的内容

  -r :删除用户的crontab的内容

 

  2.功能说明:设置计时器

  补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:

语法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

  参数:

    -e   编辑该用户的计时器设置。

    -l    列出该用户的计时器设置。

    -r   删除该用户的计时器设置。

    -u<用户名称>  指定要设定计时器的用户名称。

  

  3.crontab -e命令详解

  # crontab -e

  如果第一次执行上面命令时,会让你选择编辑器,不过有些终端会默认帮你选择nano编辑器的,一般我们都会修改编辑器为vim,具体方法请看步骤三。

  然后会打开一个crontab的文件,然后点击 i 进行输入模式,输入一下内容:

  //每隔一分钟执行一次test.php

  # * * * * * php /var/test.php  

  输入完后保存退出,:wq。然后重启crontab服务

  // 不同服务器命令不一样,详情请看步骤一

  # service cron restart

 

  4.crontab -l

  查看crontab有哪些定时任务在执行,这里没什么好弊述的。

  

  5.crontab格式

  基本格式:* * * * * command

  格式说明:上面的*代表着不同的时间点,具体排序如下:分 时 日 月 周。

  例如:

  * * * * * php /var/www/hello/index.php >> /tmp/log/index.txt

  //表示每分钟执行一次,整句话的意思是说每分钟执行使用php执行index.php文件,并将信息打印到/tmp/log/index.txt文件中,具体路径自己改

  这里加个技巧关于查看某个文件,但又不想vim <文件名>的。可以使用cat <文件名>命令

  1. * */2 * * * php /var/www/index.php >> /tmp/index.txt

  2. * * */1 * * php /var/www/index.php >> /tmp/index.txt

  // 如果要设置没隔多久执行,则写为“*/数字”,在哪个位置就代表每隔多久执行一次。上面命令分别代表:

  1.每隔2小时执行一次

  2.每隔一天执行一次

 

图片 1

LOG_DIR=/var/log   
ROOT_UID=0      #当UID为0的时候,用户才具有root用户的权限
LINES=50           #默认的保存行数
E_XCD=66          #不在/var/log目录下,将以error退出
E_NOTROOT=67    #非root用户将以error退出
E_WRONGARGS=65  #非数值的保留行数将以error退出

三、修改crontab默认编辑器为vim

  1.debian终端下默认编辑器为nano,比如crontab -e就会打开nano,这个编辑器用起来很不习惯,想修改为vim,当然,你的debian系统必须先安装vim.如果已经安装vim,请输入如下命令:

# update-alternatives --config editor

  图片 2

  然后选择/usr/vim/vim.basic就可以了,vim.tiny与vim.basic的区别是vim.basic为完全版的vim,而vim.tiny为简化版,功能上有所区别,如不支持高亮等等.

  输入数字   2   ,回车,再次打开crontab -e即可。

 

#检查是否为root用户,非root用户不能执行此脚本,将以error退出
if [ "$UID" -ne "$ROOT_UID" ]
then
        echo "Must be root to run this script."
        exit $E_NOTROOT
fi

 crontab的使用就到此为止了,欢迎有问题的小伙伴在下方留言。

 

2.关闭将要配置IP的虚拟机,然后在VMware主面板依次点击编辑->虚拟网络编辑器

#检查命令行参数
case "$1" in
"" )
        lines=$LINES
        ;;
*[!0-9]* )
        echo "Usage: `basename $0` file-cleanup"
        exit $E_WRONGARGS
        ;;
* )
        lines=$1
        ;;
esac

图片 3

1.此处的usage是用法的意思

 

2.`basename $0`执行basename命令,$0为当前脚本的名字,因此`basename $0`是显示当前脚本的名字,如我的脚本名字叫cleanup.sh,那么$(`basename $0)="cleanup.sh"

3.选择NAT模式,将子网IP和子网掩码设置为与物理机一致,参考步骤1种获取的值

注:在linux中可用man basename查看basename的用法:

图片 4

如下图例子中:

 

#basename /usr/bin/sort

4.点击NAT设置,设置网关的值与物理机一致,点击确定保存配置 并退到虚拟网络编辑器面板,点击应用是步骤3和步骤4生效(最好是点一下应用,开始就是因为没点应用,所以上不了网),最后点 确定退出虚拟网络编辑器

sort   #输出结果

图片 5

为basename指定一个路径,basename命令会删除所有的前缀(包括最后一个'/')

 

#basename include/stdio.h .h

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:对一个增强和广义的删除logfile的脚本的理解,

上一篇:S测井系统下的仪器挂接,ubuntu换系统下载路径源 下一篇:父进程和子进程,Linux进程和信号超详细分析
猜你喜欢
热门排行
精彩图文