同社は内部ネットワークと外部ネットワークを持っており、現在、外部ファイルの内部ネットワークへの無料転送を許可したいが、内部ファイルの外部ネットワークへの無料転送を許可したくないので、外部転送用のファイルサーバーを構築したいので、インターネットでいくつかの記事を見つけて組み合わせました実際のプロセスのいくつかの記録。
1.前提条件と注意事項:
1。rsyncd、sambaなどのサービスを許可するようにファイアウォールに注意してください。途中で不明なエラーがある場合は、setenforce0を試すことができます。
2. 2つのLinuxサーバー、1つの内部ネットワークと1つの外部ネットワーク。2つのcentos7.9仮想マシンを使用します。3
。最初にネットワークをテストする必要があることに注意してください。これを行ったとき、ゲートキーパーの設定が間違っていました。その結果、多くの時間が無駄になりました。まず、外部ネットワークサーバーが内部ネットワークサーバーポート873にtelnetできる限り、ネットワークがtelnet873ポートを介して接続できるかどうかを確認します。
4.ソースエンドはrsyncdリスナーを実行する必要はありませんが、inotify.shスクリプトを実行する必要があり、宛先エンドはスクリプトを実行せずにrsyncdリスナーを開く必要があります。
次に、インストールと構成のプロセス
-
イントラネットサーバー
1.ソフトウェアyuminstall -y rsync inotify-toolsをインストールします
。2。次のようにrsyncd.confを編集します。
[wzn]この名前は非常に重要であり、ソースがデータを送信するときに使用されます。スクリプトのdst
#外に注意してください。ネットワークは自動的にイントラネットに転送されます。ファイル
uid = rootはrootである必要があり、authユーザーと同じでは
ありません
。gid = rootはrootである必要があります。path= / data / wznfileディレクトリは自分で定義できます
comment = wzn file
#ignoreエラー
読み取り専用= no
書き込み専用=
ホストなし許可= *
最初に制限することはできません#list = false
auth users = wznユーザー名独自の
シークレットファイルを設定= / etc / rsync.passパスワードファイルの場所3.创建目录 mkdir -p /data/wznfile 4.创建用户名密码文件,内网侧也即rsync服务端需要同时有用户名和密码 echo “wzn:123456” > /etc/rsync.password chmod -R 600 /etc/rsync.password #必须设置为600,否则会报错 5.启动服务 rsync --daemon systemctl start rsyncd systemctl enable rsyncd.service
-
外部ネットワークサーバーのインストールプロセス
1.ソフトウェア
yuminstall -y rsyncinotify -toolsをインストールします2.ディレクトリmkdir-p / data / wznfileを
作成します3.パスワードファイルを作成します。ローカルファイルをrsyncサーバーに転送する外部ネットワーク側は、パスワードは
echo "123456"> / etc / rsync.password
chmod -R 600 /etc/rsync.passwordを600に設定する必要があります。そうしないと、エラーが報告され
ます
。5.inotify監視スクリプトviminotify.sh
#!/ bin / bash
ip =を記述します。192.168.1.21
src = / data / wwfile /#最後の/記号は、このフォルダー内のファイルを反対側に転送することを意味します。それ以外の場合は、フォルダー全体が転送されます
。dst= wzn#パスではなく、イントラネットサーバーの構成rsyncd.confモジュール名は、[]
user = wzn
/ usr / bin / inotifywait -mrq --timefmt '%d /%m /%y%H:%M' --format '%T%w%f'の名前です。読み込みファイルが一方で| -e、ATTRIBの$ {SRC}を作成、削除、変更
を行います
rsync -vzrtopg --delete --progress $ src $ user @ $ ip :: $ dst --password-file = / etc / rsync.password> / dev / null && echo "$ src was rsyncd"#デバッグ中に使用できます> / del / nullが削除され、
完了したエラーログが表示されます检查脚本 bash -x /scripts/inotify.sh 6.创建目录 mkdir -p /data/wwfile 7.执行脚本,在对应文件夹写入文件,查看内网服务器上是否有文件,查看日志信息。
-
ソース側では、仮想マシン設定スクリプトが起動後に自動的に開始されます
。/etc/rc.d/rc.localファイルは、Linuxシステムのすべてのサービスが開始された後に実行されます。したがって、起動後にスクリプトを実行する場合は、スクリプトパスをファイルに追加できます。
chmod + x /etc/rc.d/rc.localは、このファイルに実行権限を追加しますecho 'nohup /bin/bash /scripts/inotify.sh' >> /etc/rc.d/rc.local 执行脚本的命令追加到这个文件 重启执行命令查询有没有运行脚本,注意不是查询rsyncd ps -ef | grep inotify
-
ソースと宛先に同時にsambaをインストールして構成
する1.yum install -ysambaをインストールします2.配置 vi /etc/samba/smb.conf 增加以下内容 [hzh-ww-file] path=/data/wznfile browseable = yes writable = yes valid user = hzh 3.添加用户 useradd -s /sbin/nologin hzh 必须先创建系统层面的hzh账号 pdbedit -a -u hzh 设置hzh用户的smaba密码 4.设置开机启动 systemctl enable samba
-
ファイアウォールの許可されたサービスポートを追加しますfirewall-cmd--add-service samba --permanent
Firewall-cmd --reloadselinuxを閉じます。次の再起動は閉じたままになります
vim / etc / sysconfig / selinuxこれはソフトリンクであり、/ etc / selinux / configへのリンクですSELINUX =無効
次のコマンドは上記と同じですが、いずれかを押して
vim / etc / selinux / configを実行します#selinuxを完全に閉じますset SELINUX = disabled#SELINUX = Enforceing改是SELINUX = disabled
参考資料:
samba https://www.cnblogs.com/kevingrace/p/8550810.html