【問題描述】
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 修改。
