linux 备份结果输出到日志脚本

linux 备份结果输出到日志脚本,第1张

给你讲一下Linux下的

先创建个备份脚本的文件保存为backup.sh,然后让corn在指定时间运行就可以了

备份脚本内容:

cp -r 日志目录 要备份的目录

tar -zcvf bak$(date +%Y%m%d).tar.gz 要备份的目录 //将数据所在文件夹bak打包

呵呵,很简单,复制、打包就ok了

然后就是计划任务了

修改crontab内容

#crontab -e

* * * * * /脚本所在完整路径/backup.sh

如:22 11 1 * * /home/backup.sh 就是每月的1号11点22分执行home下的backup.sh脚本

前面五个字段分别表示分钟、小时、日、月、星期几(0-6)后面的为脚本所在目录

3,重新启动crond服务

#service crond restart

如果没有安装crond服务就先装上服务再说,用service crond status可以查看该服务状态

windows的也是差不多,也是复制打包的,然后就计划任务就ok了

第一种方法,我们可以在MapReduce任务查看页面找到这些日志

1.在MapReduce任务查看页面找到任务,点击进入

2.在任务详情页最下面由执行了该任务的节点

3.在节点的web地址后面加上logs/userlogs就能看到application列表,选择自己要找的

4.依次查看container

5.从container进去之后就是最终要找的日志了

stderr:输出System.err输出的信息;

stdout:输出System.out输出的信息

syslog:输出日志工具(比如Slf4j,log4j)输出的信息

可以看出通过管理页面查找sysout日志是十分麻烦的,而且mapper和reducer的日志不在一起,如果有多个reducer的话查看起来更是不方便

我们的代码(mapper,reducer)是放到了Yarn上面去执行,Yarn的日志存放地址是在yarn-env.sh中配置的,如下

我们可以去节点上面查找;为了方便快捷 直接用脚本搞定

scanMRLog.sh

if [ $# -le 0 ]

then

echo 缺少参数

exit 1

fi

# 从Hadoop的配置文件获取所有datanode

for n in `cat ${HADOOP_HOME}/etc/hadoop/slaves`

do

echo ===========查看节点 $n============

# 下面的 ~/logs/yarn 是在yarn-site.xml中设定的日志目录

ssh $n "cat ~/logs/yarn/userlogs/${1}/container_*/*out"

done

查看的时候只需要一行命令搞定,mapper,reducer里面的输出就都能看到了

# 命令中的appId从MRWeb管理端就能看到

sh test.sh application_1479689852668_0197

linux控制台不停输出日志的解决办法如下。

1、调用的perf4j.jar包中的方法。

2、最终打印在控制台上的语句。

3、跟踪这个方法,跳转到log方法。

4、跳转到正常打印。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7417873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存