启用 SMB,重启
创建共享目录
比如,我要创建C:\Users\xiao\backup
这个目录作为共享目录
- 首先创建这个文件夹
- 右击属性,点击共享选项卡,选择用户,点击共享按钮。
- 点击高级共享,勾选共享此文件夹,设置共享名。点击权限,
- 点击权限,点击添加,输入Windows 登陆用户名,点击检查名称,点击确定
- 选择添加用户,勾选权限,点击确定,剩下的都点确定。
- 在网络中检查是否可以成功访问共享目录,确保可以正常访问并增删文件。
在 Linux 上挂载共享目录
# mount -t cifs -o username=Windows登陆名,password=Windows登陆密码 //Windows设备IP/共享目录名称 本地挂载路径 mount -t cifs -o username=xiao,password=xiao //145.16.40.145/backup /home/data/mysql_backup/145.16.40.145
# 向/home/data/mysql_backup/目录中添加文件,看看Windows共享目录中是否能够接收到 touch /home/data/mysql_backup/145.16.40.145/test.txt
|
#!/bin/bash
default_args=""
source_dir="/home/data/"
target_dir="/data/"
windows_user="xiao"
windows_pass="xiao"
windows_path="//145.16.40.148/data"
sync_type="cp"
/usr/bin/inotifywait -mrq --format '%Xe %w%f' -e create,delete,modify,attrib,close_write,move ${source_dir} | while read info do ls ${target_dir} > /dev/null if [ $? -eq 0 ];then event=$(echo $info | awk '{print $1}') file=$(echo $info | awk '{print $2}') filename=${file##*/} file_dir=$(dirname ${file})"/" echo ${event} : ${file} target_file_dir=${target_dir}${file_dir#*${source_dir}} target_file_path=${target_file_dir}/${filename} echo source_file_dir: ${file_dir} echo target_file_dir: ${target_file_dir}
case $event in MODIFY|CREATE|CLOSE_WRITE|MOVED_TO) if [ "${sync_type}" == "cp" ];then echo "copy ${filename} to ${target_file_dir}" cp -f ${file} ${target_file_path} elif ["${sync_type}" == "rsync" ];then rsync -avzhc ${default_args} ${file_dir} ${target_file_dir} fi ;; DELETE|MOVED_FROM) if [ "${sync_type}" == "cp" ];then echo "delete ${target_file_path}" ls ${target_file_path} > /dev/null && mv ${target_file_path} ${target_file_path}~ elif ["${sync_type}" == "rsync" ];then rsync -avzhb --delete ${default_args} ${target_dir} ${target_file_dir} fi ;; ATTRIB) if [ ! -d "$file" ]; then if [ "${sync_type}" == "cp" ];then echo "copy ${filename} to ${target_file_dir}" cp -f ${file} ${target_file_path} elif ["${sync_type}" == "rsync" ];then rsync -avzh ${default_args} ${file_dir} ${target_file_dir} fi fi ;; esac else umount ${target_dir} mount -t cifs -o username=${windows_user},password=${windows_pass} ${windows_path} ${target_dir} fi
done
|