Linux共享Windows文件互相访问并自动化改变文件编码
2017-11-09 13:36:11  By: shinyuu

以k3日志为例:

在k3的数据库服务器进行如下操作:

1、在k3的数据库服务器导出日志数据到本地D:/K3LOG下(脚本自动化执行)

2、设置脚本定时任务每天拷贝D:/K3LOG下的文件到D:/K3LOG_BAK

EOF
  set filename=D:\test\del.log
  echo (%date% %time%)>>%filename%
  d:
  cd D:\K3LOG
  forfiles /d -l /c "cmd /c del  @path" //删除一天以前的日志,保留前一天的就好
  forfiles /c "cmd /c copy @path D:\K3KOG_BAK"  //把每一天生成的文件拷贝到K3LOG_BAK
  forfiles  /d -7 /c "cmd /c del D:\K3LOG_BAK"  //删除七天以前的备份文件
  echo end >>%filename%
EOF


在linux上操作:

1、一般windows服务器上的磁盘会以共享的方式分享出来(最常用的Samba,简单可以自己搞)

2、直接mount windows的共享文件

#mount -t cifs -o username=用户,domain=域名,password=密码  //IP/D$/K3LOG  /home/mount_k3log


注意以下几点:linux安装cifs.util,密码不能有逗号(有的话要不写入文件要不不要再命令行输密码,回车之后再输入密码),D$是共享磁盘,K3LOG是磁盘上的文件,我只需要这个文件就只分享此文件。

如果经常需要重新启动文件则这条命令写入/etc/fstab设置成开机自启


3、设置定时任务shell脚本

EOF
  #!/bin/bash
for i in `find /home/mount_k3log -name '*.log'`
  do  echo $i
  iconv -f GB2312 -t UTF-8 $i -o /home/K3LOG/`date -d "yesterday" +"%Y%m%d"`.log
   done
find /home/K3LOG/ -mtime +6 -name "*.log" -exec rm -rf {} \;
echo "`date` + success" >> /home/shell/k3.log
EOF


其实不用上边这么麻烦,这个脚本是批量操作,但是我们原始文件每天只有一个文件,只需要几条命令就可以完成。

EOF
   #!/bin/bash
   iconv -f GB2312 -t UTF-8 /home/mount_k3log/*.log -o /home/K3LOG/`date -d "yesterday" +"%Y%m%d"`.log
 find /home/K3LOG/ -mtime +6 -name "*.log" -exec rm -rf {} \;
 echo "`date` + success" >> /home/shell/k3.log
EOF


4、每天定时执行脚本

EOF
  0 2 * * * /home/shell/k3_copy.sh &>> /var/log/cront.log
EOF


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


猜你喜欢的

快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+