我想在我的服务器中运行一个脚本文件,它将搜索 .log 扩展名文件并将其移动到网络中的共享驱动器。
你能帮我吗,因为我对此完全陌生。不过我尝试做了一些东西,但我不确定是否可行。
谢谢
iwd=/IBM/fileapp/opt/linuxscriptfileread
firstpath=$(cat $iwd/pathfile | grep path1 | awk '{print $3}')
echo "Log Path - $firstpath"
secondpath=$(cat $iwd/pathfile | grep path2 | awk '{print $3}')
echo "Log Path - $secondpath"
thirdpath=$(cat $iwd/pathfile | grep path3 | awk '{print $3}')
echo "Log Path - $thirdpath"
archive1=$(cat $iwd/pathfile | grep destination1 | awk '{print $3}')
echo "Archival Log Path - $archive1"
archive2=$(cat $iwd/pathfile | grep destination2 | awk '{print $3}')
echo "Archival Log Path - $archive2"
archive3=$(cat $iwd/pathfile | grep destination3 | awk '{print $3}')
echo "Archival Log Path - $archive3"
days=$(cat $iwd/pathfile | grep retentionDays | awk '{print $3}')
echo "Retention days are - $days"
mkdir -p $archive1/$(date +"%m-%d-%y")
mkdir -p $archive2/$(date +"%m-%d-%y")
mkdir -p $archive3/$(date +"%m-%d-%y")
find $firstpath -type f -name "*.log.*" -mtime +$days -exec mv {} $archive1/$(date +"%m-%d-%y") \;
find $firstpath -type f -name "*.log" -mtime +$days -exec mv {} $archive1/$(date +"%m-%d-%y") \;
find $secondpath -type f -name "*.log.*" -mtime +$days -exec mv {} $archive2/$(date +"%m-%d-%y") \;
find $secondpath -type f -name "*.log" -mtime +$days -exec mv {} $archive2/$(date +"%m-%d-%y") \;
find $thirdpath -type f -name "*.log.*" -mtime +$days -exec mv {} $archive1/$(date +"%m-%d-%y") \;
find $thirdpath -type f -name "*.log" -mtime +$days -exec mv {} $archive1/$(date +"%m-%d-%y") \;
echo $(date) >> $archive1/timestamp.log
答案1
1. 挂载网络驱动器
这将允许您访问 Windows 网络驱动器,就像它是 Linux 计算机上的文件夹一样。
mount -t cifs //myWindowsComputer/myShareName -o username=myLogin,password=myPassword /mnt/myMountPoint
myWindowsComputer
是您的 Linux 计算机用来与 Windows 计算机通信的名称。它可以是它的 IP,可以是它的网络名称(又名计算机名称),重要的是Linux计算机可以找到它。myShareName
是您的 Windows 共享的名称,又称共享文件夹。myLogin
,mypassword
非常不言自明,它们是允许访问 Windows 计算机上的共享文件夹的 Windows 用户的登录名和密码。/mnt/myMountPoint
是 Linux 计算机上 Windows 共享将在其中出现的文件夹。它甚至不必位于/mnt
,它必须是一个空的、现有的文件夹。Windows 共享中的所有内容都将出现在此文件夹中,并且您放入此文件夹中的所有内容都将被发送到共享。
2. 复制
一旦共享被挂载,您就可以像复制常规的本地 Linux 文件夹一样进行复制:
cp /path/to/my/files/*.log /mnt/myMountPoint
/path/to/my/files/
是您要复制的文件的路径,当然您可以删除它以仅复制当前工作目录中的文件。/mnt/mymountPoint
同上。
显然,您也可以在共享的挂载点使用任何命令(ls
,,...)并将文件复制到挂载点的子文件夹中,从而有效地将它们复制到 Windows 共享的子文件夹中mkdir
。touch