mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-12-29 16:41:56 +00:00
增加rsync同步功能
This commit is contained in:
parent
f19aa20817
commit
e4648cf47d
1
.gitignore
vendored
1
.gitignore
vendored
@ -67,3 +67,4 @@ upload/
|
|||||||
custom_settings.py
|
custom_settings.py
|
||||||
docker-compose.yml
|
docker-compose.yml
|
||||||
*.zip
|
*.zip
|
||||||
|
rsyncd.passwd
|
3
dockerfiles/test_case_rsync/Dockerfile
Normal file
3
dockerfiles/test_case_rsync/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM ubuntu:14.04
|
||||||
|
RUN apt-get update && apt-get -y install rsync
|
||||||
|
CMD /bin/bash /OnlineJudge/dockerfiles/test_case_rsync/run.sh
|
19
dockerfiles/test_case_rsync/docker-compose.example.yml
Normal file
19
dockerfiles/test_case_rsync/docker-compose.example.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
oj_rsync_master:
|
||||||
|
image: oj_rsync
|
||||||
|
volumes:
|
||||||
|
- /home/OnlineJudge:/OnlineJudge
|
||||||
|
- /home/test_case:/OnlineJudge/test_case
|
||||||
|
- /home/log:/OnlineJudge/log
|
||||||
|
ports:
|
||||||
|
- "0.0.0.0:873:873"
|
||||||
|
environment:
|
||||||
|
- RSYNC_MODE=master
|
||||||
|
oj_rsync_slave:
|
||||||
|
image: oj_rsync
|
||||||
|
volumes:
|
||||||
|
- /home/OnlineJudge:/OnlineJudge
|
||||||
|
- /home/test_case:/OnlineJudge/test_case
|
||||||
|
- /home/log:/OnlineJudge/log
|
||||||
|
environment:
|
||||||
|
- RSYNC_MODE=slave
|
||||||
|
- RSYNC_MASTER_ADDR={YOUR_MASTER_ADDR}
|
11
dockerfiles/test_case_rsync/rsyncd.conf
Normal file
11
dockerfiles/test_case_rsync/rsyncd.conf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
port = 873
|
||||||
|
uid = root
|
||||||
|
gid = root
|
||||||
|
use chroot = yes
|
||||||
|
read only = yes
|
||||||
|
log file = /OnlineJudge/log/rsyncd.log
|
||||||
|
[testcase]
|
||||||
|
path = /OnlineJudge/test_case/
|
||||||
|
list = yes
|
||||||
|
auth users = ojrsync
|
||||||
|
secrets file = /etc/rsyncd/rsyncd.passwd
|
1
dockerfiles/test_case_rsync/rsyncd.example.passwd
Normal file
1
dockerfiles/test_case_rsync/rsyncd.example.passwd
Normal file
@ -0,0 +1 @@
|
|||||||
|
YOUR_PASSWORD
|
6
dockerfiles/test_case_rsync/rsyncd_slave.sh
Normal file
6
dockerfiles/test_case_rsync/rsyncd_slave.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
rsync -avz --delete --progress --password-file=/OnlineJudge/dockerfiles/test_case_rsync/rsyncd.passwd ojrsync@$RSYNC_MASTER_ADDR::testcase /OnlineJudge/test_case >> /OnlineJudge/log/rsync_slave.log
|
||||||
|
sleep 5
|
||||||
|
done
|
16
dockerfiles/test_case_rsync/run.sh
Normal file
16
dockerfiles/test_case_rsync/run.sh
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
if [ "$RSYNC_MODE" = "master" ]; then
|
||||||
|
if [ ! -f "/etc/rsyncd/rsync_master.passwd" ]; then
|
||||||
|
mkdir /etc/rsyncd
|
||||||
|
(echo "ojrsync:" && cat /OnlineJudge/dockerfiles/test_case_rsync/rsyncd.passwd) | tr -d "\n" > /etc/rsyncd/rsyncd.passwd
|
||||||
|
fi
|
||||||
|
chmod 600 /etc/rsyncd/rsyncd.passwd
|
||||||
|
rsync --daemon --config=/OnlineJudge/dockerfiles/test_case_rsync/rsyncd.conf
|
||||||
|
else
|
||||||
|
chmod 600 /OnlineJudge/dockerfiles/test_case_rsync/rsyncd.passwd
|
||||||
|
/bin/bash /OnlineJudge/dockerfiles/test_case_rsync/rsyncd_slave.sh
|
||||||
|
fi
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
sleep 100
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user