Linux mount Windows目录遇到 write-protected 问题 及 一个屌丝的逆袭

本文描述了在Linux系统中挂载Windows共享目录时遇到的写保护问题,以及解决方案。通过安装cifs-utils包可以解决此问题。此外,文章还介绍了如何利用Linux挂载的共享目录来修改文件的last modified和access time,以避免被定时删除。通过crontab和Python脚本`update_ts.py`,可以更新文件和子目录的时间戳。

参考:

http://blog.csdn.net/gtlions/article/details/8558718

http://2hei.net/mt/2008/12/wndows-use-python-edit-filetime.html

http://www.pythoncentral.io/recursive-file-and-directory-manipulation-in-python-part-1/


【问题描述】


Windows 机器192.168.1.103共享了 /share/yasi 目录,并且赋予了写的权限,在Windows机器下可以用 yasi/pass 登录。在一台CentOS 6.3机器上尝试将该共享目录 mount 到 /mnt/yasi 上

mount -t cifs //192.168.1.103/share/yasi /mnt/yasi -o username="yasi",password="pass"

结果失败,错误提示如下:

mount: block device //192.168.1.103/share/yasi is write-protected, mounting read-only
mount: cannot mount block device //192.168.1.103/share/yasi read-only


【原因】

需要安装cifs-utils


【解决】

安装cifs-utils

yum install cifs-utils.x86_64

然后重新执行

mount -t cifs //192.168.1.103/share/yasi /mnt/win -o username="yasi",password="pass"
就mount上了,并且具有写的权限。


【利用Linux mount 上 Windows 共享目录做点事情】


出于对资源的合理利用,公司对某个共享文件夹做了如下限制:该文件夹下的各个员工的个人文件夹中,last modified/access time 老于30天的文件或子文件夹将会在每天定时执行的某个脚本中被删除。然而很多文件很大但我们不希望被删除。

下面,屌丝的逆袭来了:


1)将该共享文件夹下的个人文件夹(比如 //192.168.1.103/share/yasi)mount到一台Linux机器上

mount -t cifs //192.168.1.103/share/yasi /mnt/yasi -o username="yasi",password="pass"


2)在Linux机器上编码如下 Python 脚本,/home/yasi/update_ts.py

import os, sys, time

topdir = "/mnt/yasi"

def update_time(timestamp, dirname, names):
        for name in names:
                timestamps = (timestamp, timestamp)
                os.utime(os.path.join(dirname, name), timestamps)

os.path.walk(topdir, update_time, time.time())

3)在 Linux 机器上添加 cron job 如下,即每天23:00的时候执行 update_ts.py 脚本

crontab -e

0 23 * * * python /home/yasi/update_ts.py

于是,每天23:00 都会将  //192.168.1.103/share/yasi 下的所有文件和子文件夹的 last modified/access time 改成当前时间,这样就永远不存在 “老于30天没有访问过” 的文件和文件夹了!


【注意】


update_ts.py 中指定的 /mnt/yasi 即 //192.168.1.103/share/yasi 里面的所有文件和子文件夹都会被更改时间戳,但是 //192.168.1.103/share/yasi 这个文件夹本身的时间戳不会被 update_ts.py 修改


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值