将syslog文件复制到linux中的新目录

时间:2014-03-23 11:03:11

标签: linux bash directory cp

我目前正在编写一个编写bash脚本的任务,该脚本可以将备份日志(syslog,dmesg和message)文件执行到新目录。我这样写了我的剧本:

cd /var/log 
sudo cp syslog Assignment 

文件"作业"在我的主目录中。当我使用" ls"在我的Assignment文件夹中的命令,我在那里找不到syslog的副本。谁能告诉我哪里出错了?提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

你可以试试这个:

#!/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

由于