【问题标题】:Copying syslog file to a new directory in linux将 syslog 文件复制到 linux 中的新目录
【发布时间】:2014-04-30 15:55:26
【问题描述】:

我目前的任务是编写一个 bash 脚本,该脚本可以将日志(syslog、dmesg 和消息)文件备份到新目录。我的脚本是这样写的:

cd /var/log 
sudo cp syslog Assignment 

“作业”文件在我的主目录中。当我在我的分配文件夹中使用“ls”命令时,我没有在其中找到系统日志的副本。有人可以告诉我我哪里出错了吗?提前致谢。

【问题讨论】:

  • 如果您这样做,Assignment 文件将在/var/log/ 中创建。尝试对源和目标都使用完整路径。文件。

标签: linux bash directory cp


【解决方案1】:

我认为您的意思是作业文件夹,而不是作业文件。无论如何,如果你 cd 到 /var/log,那么当你在 /var/log 中执行 cp 时,它会认为 Assignment 是 /var/log 的本地。如果您现在在 /var/log 中执行 ls,您将在 /var/log 中看到名为 Assignment 的 syslog 副本。要将 syslog 复制到主目录中的 assignment 文件夹,您需要指定 absolute 路径而不是 relative 路径。使用波浪号 ~ 来指定主目录。所以你的脚本应该说

cd /var/log
sudo cp syslog ~/Assignment/

【讨论】:

  • 嘿伙计,感谢您的帮助,这正是我所需要的。它现在工作。再次非常感谢您的帮助。现在我终于可以完成我的任务了。
【解决方案2】:

你可以试试这个:

#!/bin/sh
if ! [ $1 ] ; then
        echo "Usage:";
        echo $0 "<directory_where_to_save_logs>";
        return;
fi

if [ ! -d "$1" ]; then
  echo "Creating directory $1";
  mkdir $1;
fi

cp /var/log/syslog* $1
cp /var/log/dmesg* $1

谢谢

【讨论】:

  • 嘿,感谢您对该脚本的帮助,尽管我实际上需要 gms9rc 的回答。
猜你喜欢
  • 1970-01-01
  • 2012-03-18
  • 2012-04-08
  • 1970-01-01
  • 2014-11-14
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-01
相关资源
最近更新 更多