重定向 在定时执行任务 还有服务后台启动 命令输出比较多
先说一下linux重定向: 0 标准输入 1 标准输出 2 错误信息输出
在一般使用时,默认的是标准输出;1
例如,将某个程序的错误信息输出到log文件中? ./program 2>log。 这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。 Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它。
后台运行时候 会有个 nohup 但是使用nohup时,会自动将输出写入nohup.out文件中nohup.out自动增大 ;可以利用/dev/null来解决这个问题。
nohup ./program >/dev/null 2>log & 如果错误信息也不想要的话: nohup ./program >/dev/null 2>&1 &
Linux下如何不停止WEB服务清空nohup.out文件; 第一种:cp /dev/null nohup.out 第二种:cat /dev/null > nohup.out
定时删除日志脚本命令;(删除时间)
cat rm-log.sh
#! /bin/bash find /var/log/ -mtime +3 -name *-2016* -exec rm -rf {} ;
chmod +x rm-log.sh
crontab 定时任务
0 1 * * * /opt/soft/log/rm-log.sh >/dev/null 2>&1
定时清空 nohup.out 文件;
vi /opt/del.sh #! /bin/bash cat /dev/null > nohup.out
chmod a+x del.sh
crontab -e 0 1 * * * /opt/del.sh >/dev/null 2>&1 以下方法将每10秒执行一次 # crontab -e * * * * * /bin/date >>/tmp/date.txt * * * * * sleep 10; /bin/date >>/tmp/date.txt
每分钟; */5 * * * * /opt/del_nohup.sh 每五分钟执行 */5 * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 *