首页 > 其他分享 >脚本执行报错 cp: cannot stat '/home/dar/app/log_back'$'\r''/nohup.out': No

脚本执行报错 cp: cannot stat '/home/dar/app/log_back'$'\r''/nohup.out': No

时间:2024-08-09 18:27:26浏览次数:9  
标签:脚本 stat log 报错 nohup 日志 dir out

背景

针对线上nohup日志较大,需要进行拆分,所以写了一个脚本文件,用来定时执行(或者手动执行)

脚本一

log_dir="/home/dar/app/log_back"
# 拷贝日志文件到昨天的log中
cp $log_dir/nohup.out $log_dir/nohup-$(date +"%Y%m%d_%H%M%S").log
# 清空nohup.out日志
truncate -s 0 $log_dir/nohup.out
# 删除14天以前的日志
find $log_dir -mtime +14 -name 'nohup*.log' -delete

脚本二

log_dir="/qtl/interphone"
# 拷贝日志文件到昨天的log中
cp $log_dir/nohup.out $log_dir/nohup`date -d yesterday +%Y%m%d`.log
# 清空nohup.out日志
echo > $log_dir/nohup.out
# 删除14天以前的日志
find $log_dir -mtime +14 -name 'nohup*.log' -exec rm -rf {} \;

这个脚本,看起来是没有问题的,但是传输到linux服务器上后,执行,就会报错,找不到路径,看错误信息,就是一些乱七八糟的字符影响了

truncate: cannot open '/home/dar/app/log_back'$'\r''/nohup.out'$'\r' for writing: No such file or directory
'ind: unknown predicate `-delete`

然后,需要使用dos2unix命令或者sed来移除Windows风格的行结束符

sed -i 's/\r//' log.sh

移除后,再次执行脚本,可以正常执行

标签:脚本,stat,log,报错,nohup,日志,dir,out
From: https://www.cnblogs.com/darling331/p/18351285

相关文章

  • JAVA报错:Caused by: java.lang.NoSuchFieldError: REFLECTION
     Causedby:java.lang.NoSuchFieldError:REFLECTIONatcom.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.<init>(RuntimeModelBuilder.java:93)atcom.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:473)atcom......
  • RF运行for循环报错 TypeError: argument of type ‘int‘ is not iterable
    最近写自动化脚本用到了FOR循环,我这里的想用数字迭代去删除ACL条目,上百条要删除,要想解放双手,还的是FOR循环。 但是呢,运行过程中到第一次点击禁用就提示我TypeError:argumentoftype'int'isnotiterable,直接语法错误。这句话是说:整数类型不可迭代,上网搜索好多方法都不......
  • Visual C++ 官方版下载及安装教程必装(微软常用运行库合集|DLL报错必装)
    前言MicrosoftVisualC++Redistributable(简称MSVC,VB/VC,系统运行库)是Windows操作系统应用程序的基础类型库组件。此版VisualC++运行库组件合集(微软常用运行库合集)由国内封装爱好者@Dreamcast打包而成,整合VisualC++组件安装包运行库所有版本,提供图形安装界面,可自选更新V......
  • yum和rpm安装的Jenkins启动报错"Job for jenkins.service failed because the control
    jenkins卸载方式servicejenkinsstopyumcleanallyum-yremovejenkinsfind/-inamejenkins|xargs-n500rm-rf#文件名称符合name的文件。iname会忽略大小写#xargs命令可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数......
  • Springboot+logback+druid +密码加密 实现业务日志入库
    springboot配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedruid:#主库数据源master:driverClassName:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://xxx:3306/dbName?useUnicode=true&characterEncoding=u......
  • dockker部署redis报错(报:WARNING Memory overcommit must be enabled! Without it, a b
    转载博客(机翻):https://ourcodeworld.com/articles/read/2083/how-to-remove-redis-warning-on-docker-memory-overcommit-must-be-enabledHowtoremoveRediswarningonDocker:Memoryovercommitmustbeenabled如何删除Docker上的Redis警告:必须启用内存过量使用Carlos......
  • graylog长日志丢日志的问题
    graylog长日志丢日志的问题环境:C#.NET使用UDP发送给graylog。当日志内容(full_message)超过 21790个汉字时,就报错:一个在数据报套接字上发送的消息大于内部消息缓冲区或其他一些网络限制,或该用户用于接收数据报的缓冲区比数据报小。 21780个汉字正常。 可能尝试的......
  • WinServer重新注册NET40报错
    原文链接:https://blog.csdn.net/lsgis2001/article/details/140834026报错:此操作系统版本不支持此选项。管理员应使用“打开或关闭Windows功能”对话框、“服务器管理器”管理工具或dism.exe命令行工具安装/卸载包含IIS8的ASP.NET4.5C:\Users\Administrator>C:\Windows\M......
  • 解决端口号占用问题:Spring Boot报错,Web server failed to start. Port 8080 was alrea
    报错信息:Webserverfailedtostart.Port8080wasalreadyinuse.报错原因:端口被占用解决方法:解决方法一:修改端口修改配置文件,加上参数:server.port=8014或者在application.yml文件中添加server:port:8014在访问时,替换对应的端口号即可解决方法二:关闭占用端口的......
  • SciTech-Mathematics-Probability+Statistics-5StatisticalConcepts:
    5StatisticalConceptsThatOftenConfuseBeginners(AndHowtoUnderstandThem)BYNAHLADAVIESPOSTEDONAUGUST6,20245StatisticalConceptsThatOftenConfuseBeginners(AndHowtoUnderstandThem)Statisticsisn'tjustformathematiciansorscie......