• 【shell】使用 /dev/null crontab


    1.linux组成kernel、shell、工具程序有sh.bash

    一个例子

    !#/bin/bash

    echo ''

    执行之前chmod +x

    执行./

    2.一个小窍门 cp /dev/null /var/log/apache2/access.log

      利用/dev/null来晴空apache2中的日志文件

     注释:把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.

    禁止标准输出.

       1 cat $filename >/dev/null
       2 # 文件内容丢失,而不会输出到标准输出.
    

    禁止标准错误 (来自例子 12-3).

       1 rm $badname 2>/dev/null
       2 #           这样错误信息[标准错误]就被丢到太平洋去了.
    

    禁止标准输出和标准错误的输出.

       1 cat $filename 2>/dev/null >/dev/null
       2 # 如果"$filename"不存在,将不会有任何错误信息提示.
       3 # 如果"$filename"存在, 文件的内容不会打印到标准输出.
       4 # 因此Therefore, 上面的代码根本不会输出任何信息.
       5 #
       6 #  当只想测试命令的退出码而不想有任何输出时非常有用。
       7 #
       8 #
       9 # cat $filename &>/dev/null
      10 #     也可以, 由 Baris Cicek 指出.
    

    例子 28-1. 隐藏cookie而不再使用

       1 if [ -f ~/.netscape/cookies ]  # 如果存在则删除.
       2 then
       3   rm -f ~/.netscape/cookies
       4 fi
       5 
       6 ln -s /dev/null ~/.netscape/cookies
       7 # 现在所有的cookies都会丢入黑洞而不会保存在磁盘上了.
    

    1>/dev/null 2>&1的含义

    shell中可能经常能看到:>/dev/null 2>&1

    命令的结果可以通过%>的形式来定义输出

    /dev/null 代表空设备文件
    > 代表重定向到哪里,例如:echo "123" > /home/123.txt
    1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
    2 表示stderr标准错误
    & 表示等同于的意思,2>&1,表示2的输出重定向等同于1

    那么本文标题的语句:
    1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
    2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

     

    来源:http://www.yunwei.org/read.php?18

      小窍门 IO重定向 ls>1.txt 将结果进行保存到文件

    3、利用crontab在自动清理log文件

    只用把上面的sh文件写到crontab中

     使用权限 : root用户和crontab文件的所有者   

     

    crontab格式

    语法 :   crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]   说明 :   crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。   参数 :   -e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)   -r [UserName]: 删除目前的时程表   -l [UserName]: 列出目前的时程表

      -v [UserName]:列出用户cron作业的状态

    例子 crontab -u root -e就可以打开vi了

    然后写入0 6 * * * /root/clearlog.sh 表示每日早上6点就会执行

                0 * * * * /bin/ls 每月每天每小时的第 0 分钟执行一次 /bin/ls

                */20 6-12 * 12 * /usr/bin/backup

                     在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup

                 20 0-23/2 * * * echo "haha"

                     每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"

    4、部署bash shell的环境

        echo $SHELL 看shell版本 /bin/bash

        我们可以从网上下源码 bash-3.2.48.tar.gz

         解压./configure 也可以通过--prefix=/home/ols32来指定安装目录

           编译 make 测试 make tests

      

     5、登陆ssh 如果没有指定帐号 例 ssh 192.168.1.2 相当于以root登陆

          或者ssh 帐号@ip 例如 ssh john@192.168.1.2

  • 相关阅读:
    L347
    2019.4.22 英语阅读
    L345 大脑复生
    L343 中译英
    L342 Air Pollution Is Doing More Than Just Slowly Killing Us
    Is It Always a Good Idea to Reach Outside Your Comfort Zone?
    2019.4月 商务英语场景
    元器件横截面-这里有很多专业词汇
    python 列表和元组 还有range
    python 基本数据类型简介intstr bool
  • 原文地址:https://www.cnblogs.com/Pynix/p/4310077.html
Copyright © 2020-2023  润新知