เจเจธ เจชเฉเจธเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ inotify + createrepo เจธเจเฉเจฐเจฟเจชเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเฉฑเจ rpm เจเจฐเจเฉเจซเฉเจเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเฉเฉฐ เจฆเฉเจเจพเจเจเฉเฅค เจเจฒเจพเจเฉเจฐเจฟเจคเฉเจเจ apache httpd เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ webdav เจฆเฉเจเจฐเจพ เจ เฉฑเจชเจฒเฉเจก เจเฉเจคเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจเฅค เจ เจชเจพเจเฉ httpd เจชเฉเจธเจ เจฆเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ เจเจฟเจเจ เจฒเจฟเจเจฟเจ เจเจพเจตเฉเจเจพเฅค
เจเจธ เจฒเจ, เจนเฉฑเจฒ เจจเฉเฉฐ เจธเจฟเจฐเจซเจผ RPM เจธเจเฉเจฐเฉเจ เจจเฉเฉฐ เจธเฉฐเจเจ เจฟเจค เจเจฐเจจ เจฒเจ เจนเฉเจ เจฒเจฟเจเฉเจเจ เจฒเฉเฉเจพเจ เจชเฉเจฐเฉเจเจ เจเจฐเจจเฉเจเจ เจเจพเจนเฉเจฆเฉเจเจ เจนเจจ:
-
เจฎเฉเจซเจค
-
เจเจฐเจเฉเจซเฉเจเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจ เฉฑเจชเจฒเฉเจก เจเจฐเจจ เจคเฉเจ เจเฉเจ เจธเจเจฟเฉฐเจเจพเจ เจฌเจพเจ เจฆ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจชเฉเจเฉเจ เจฆเฉ เจเจชเจฒเจฌเจงเจคเจพเฅค
-
เจเฉฐเจธเจเจพเจฒ เจเจฐเจจ เจ เจคเฉ เจธเฉฐเจญเจพเจฒเจฃ เจฒเจ เจเจธเจพเจจ
-
เจเฉฑเจ เจเจชเจฒเจฌเจงเจคเจพ เจฌเจฃเจพเจเจฃ เจฆเฉ เจธเจฎเจฐเฉฑเจฅเจพ
เจเจฟเจเจ เจจเจนเฉเจ
SonaType Nexus เจเจฎเจฟเฉฑเจ : -
เจตเจฟเฉฑเจ เจธเจเฉเจฐเฉเจ
SonaType Nexus เจเจฎเจฟเฉฑเจ เจเจ เจเจฟเจธเจฎ เจฆเฉเจเจ เจเจฒเจพเจตเจพเจ เจเจธ เจคเฉฑเจฅ เจตเฉฑเจฒ เจเฉเจฆเฉเจเจ เจนเจจ เจเจฟSonaType Nexus เจเจฎเจฟเฉฑเจ เจ เจธเจซเจฒเจคเจพ เจฆเจพ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจฌเจฟเฉฐเจฆเฉ เจฌเจฃเฉ. -
เจตเจฟเฉฑเจ เจเฉฑเจ เจเจชเจฒเจฌเจงเจคเจพ
SonaType Nexus เจฆเจพ เจญเฉเจเจคเจพเจจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค -
เจฎเจฟเฉฑเจ เจฎเฉเจฐเฉ เจฒเจ เจเฉฑเจ เจเจตเจฐ-เจเฉฐเจเฉเจจเฉเจ เจฐเจก เจนเฉฑเจฒ เจฆเฉ เจคเจฐเฉเจนเจพเจ เจเจพเจชเจฆเจพ เจนเฉ. -
เจตเจฟเฉฑเจ เจเจฒเจพเจคเจฎเจ เจเฉเจเจผเจพเจ
SonaType Nexus เจฌเจฒเฉเจฌ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจ เจเจพเจจเจ เจชเจพเจตเจฐ เจเจเจเฉเจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจฌเฉเจเจ เฉฑเจช เจจเจนเฉเจ เจนเฉ เจคเจพเจ เจคเฉเจธเฉเจ เจฌเจฒเฉเจฌ เจจเฉเฉฐ เจฐเฉเจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจจเจนเฉเจ เจนเฉเจตเฉเจเฉเฅค เจธเจพเจกเฉ เจเฉเจฒ เจเจน เจเจฒเจคเฉ เจธเฉ:ERROR [ForkJoinPool.commonPool-worker-2] *SYSTEM [com.orientechnologies.orient.core.storage](http://com.orientechnologies.orient.core.storage/).fs.OFileClassic - $ANSI{green {db=security}} Error during data read for file 'privilege_5.pcl' 1-th attempt [java.io](http://java.io/).IOException: Bad address
. เจฌเจฒเฉเจฌ เจจเฉเฉฐ เจเจฆเฉ เจตเฉ เจฌเจฐเจพเจฎเจฆ เจจเจนเฉเจ เจเฉเจคเจพ เจเจฟเจ เจธเฉเฅค
เจธเจฐเฉเจค เจเฉเจก
โ เจธเจฐเฉเจค เจเฉเจก เจธเจฅเจฟเจค เจนเฉ
เจฎเฉเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ:
#!/bin/bash
source /etc/inotify-createrepo.conf
LOGFILE=/var/log/inotify-createrepo.log
function monitoring() {
inotifywait -e close_write,delete -msrq --exclude ".repodata|.olddata|repodata" "${REPO}" | while read events
do
echo $events >> $LOGFILE
touch /tmp/need_create
done
}
function run_createrepo() {
while true; do
if [ -f /tmp/need_create ];
then
rm -f /tmp/need_create
echo "start createrepo $(date --rfc-3339=seconds)"
/usr/bin/createrepo --update "${REPO}"
echo "finish createrepo $(date --rfc-3339=seconds)"
fi
sleep 1
done
}
echo "Start filesystem monitoring: Directory is $REPO, monitor logfile is $LOGFILE"
monitoring >> $LOGFILE &
run_createrepo >> $LOGFILE &
เจธเฉเจเจฟเฉฐเจ
inotify-createrepo เจธเจฟเจฐเจซ CentOS 7 เจเจพเจ เจเฉฑเจเฉ 'เจคเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉเฅค เจเจธ เจจเฉเฉฐ CentOS 6 'เจคเฉ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจชเฉเจฐเจพเจชเจค เจจเจนเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฟเจเฅค
yum -y install yum-plugin-copr
yum copr enable antonpatsev/inotify-createrepo
yum -y install inotify-createrepo
systemctl start inotify-createrepo
เจธเฉฐเจฐเจเจจเจพ
เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ inotify-createrepo เจเฉฑเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจฆเจพ เจนเฉ /var/www/repos/rpm-repo/
.
เจคเฉเจธเฉเจ เจเจธ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจจเฉเฉฐ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเฉ /etc/inotify-createrepo.conf.
เจตเจฐเจคเฉเจ เจเจฐเฉ
เจเจฟเจธเฉ เจตเฉ เจซเจพเจเจฒ เจจเฉเฉฐ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจเฉเฉเจฆเฉ เจธเจฎเฉเจ /var/www/repos/rpm-repo/
inotifywait เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจพ /tmp/need_create
. run_createrepo เจซเฉฐเจเจธเจผเจจ เจเฉฑเจ เจ
เจจเฉฐเจค เจฒเฉเจช เจตเจฟเฉฑเจ เจเฉฑเจฒเจฆเจพ เจนเฉ เจ
เจคเฉ เจซเจพเจเจฒ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฐเจฆเจพ เจนเฉ /tmp/need_create
. เจเฉเจเจฐ เจซเจพเจเจฒ เจฎเฉเจเฉเจฆ เจนเฉ, เจคเจพเจ เจเจฒเจพเจ createrepo --update
.
เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจเจเจฐเฉ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเฉ:
/var/www/repos/rpm-repo/ CREATE nginx-1.16.1-1.el7.ngx.x86_64.rpm
start createrepo 2020-03-02 09:46:21+03:00
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
finish createrepo 2020-03-02 09:46:22+03:00
เจเฉฑเจ เจเจชเจฒเจฌเจงเจคเจพ เจฌเจฃเจพเจเจฃ เจฆเฉ เจธเจฎเจฐเฉฑเจฅเจพ
เจฎเฉเจเฉเจฆเจพ เจนเฉฑเจฒ เจคเฉเจ เจเฉฑเจ เจเจชเจฒเจฌเจงเจคเจพ เจฌเจฃเจพเจเจฃ เจฒเจ, เจฎเฉเจจเฉเฉฐ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ 2 เจธเจฐเจตเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, HA เจฒเจ Keepalived เจ
เจคเฉ เจเจฐเจเฉเจซเฉเจเจ เจธเจฎเจเจพเจฒเฉเจเจฐเจจ เจฒเจ Lsyncd.
เจตเฉเจฌเจกเจพเจต
เจซเจพเจเจฒเจพเจ เจ เจชเจฒเฉเจก เจเจฐเจจ เจฆเฉ เจเจ เจคเจฐเฉเจเฉ เจนเจจ: SSH, NFS, WebDav. WebDav เจเฉฑเจ เจเจงเฉเจจเจฟเจ เจ เจคเฉ เจธเจงเจพเจฐเจจ เจตเจฟเจเจฒเจช เจเจพเจชเจฆเจพ เจนเฉ.
WebDav เจฒเจ, เจ เจธเฉเจ เจ เจชเจพเจเฉ httpd เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค 2020 เจตเจฟเฉฑเจ เจ เจชเจพเจเฉ httpd เจเจฟเจเจ เจนเฉ เจ เจคเฉ nginx เจจเจนเฉเจ?
เจฎเฉเจ Nginx + เจฎเฉเจกเฉเจเจฒ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, Webdav) เจฌเจฃเจพเจเจฃ เจฒเจ เจเจเฉเจฎเฉเจเจฟเจก เจเฉเจฒเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพเฅค
Nginx + เจฎเฉเจกเฉเจเจฒ เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจนเฉ -
เจฎเฉเจ เจเจฟเฉฑเจ เจฒเจ เจฌเฉเจจเจคเฉ เจเฉเจคเฉ
config webdav.conf
DavLockDB /var/www/html/DavLock
<VirtualHost localhost:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
Alias /rpm /var/www/repos/rpm-repo
<Directory /var/www/repos/rpm-repo>
DAV On
Options Indexes FollowSymlinks SymLinksifOwnerMatch IncludesNOEXEC
IndexOptions NameWidth=* DescriptionWidth=*
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
เจฎเฉเจจเฉเฉฐ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจฌเจพเจเฉ เจ เจชเจพเจเฉ httpd เจธเฉฐเจฐเจเจจเจพ เจเจชเจฃเฉ เจเจช เจเจฐเฉเจเฉเฅค
เจ เจชเจพเจเฉ httpd เจฆเฉ เจธเจพเจนเจฎเจฃเฉ Nginx
เจ เจชเจพเจเฉ เจฆเฉ เจเจฒเจ, Nginx เจเฉฑเจ เจเจตเฉเจเจ-เจ เจงเจพเจฐเจฟเจค เจฌเฉเจจเจคเฉ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจฎเจพเจกเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจเจฟเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจเจฟเจธเฉ เจตเฉ เจเจฟเจฃเจคเฉ เจฆเฉ เจเจพเจนเจเจพเจ เจฒเจ เจธเจฟเจฐเจซ เจเฉฑเจ HTTP เจธเจฐเจตเจฐ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ. เจคเฉเจธเฉเจ nginx เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจธเจฐเจตเจฐ เจฒเฉเจก เจจเฉเฉฐ เจเจเจพ เจธเจเจฆเฉ เจนเฉ.
nginx-front.conf เจธเฉฐเจฐเจเจจเจพ. เจฎเฉเจจเฉเฉฐ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจฌเจพเจเฉ nginx เจธเฉฐเจฐเจเจจเจพ เจเจชเจฃเฉ เจเจช เจเจฐเฉเจเฉ.
upstream nginx_front {
server localhost:80;
}
server {
listen 443 ssl;
server_name ะฒะฐั-ะฒะธัััะฐะปัะฝัั
-ั
ะพัั;
access_log /var/log/nginx/nginx-front-access.log main;
error_log /var/log/nginx/nginx-front.conf-error.log warn;
location / {
proxy_pass http://nginx_front;
}
}
WebDav เจฆเฉเจเจฐเจพ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจเจพ
rpm เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจเจพ เจฌเจนเฉเจค เจเจธเจพเจจ เจนเฉเฅค
curl -T ./nginx-1.16.1-1.el7.ngx.x86_64.rpm https://ะฒะฐั-ะฒะธัััะฐะปัะฝัะน-ั
ะพัั/rpm/
เจธเจฐเฉเจค: www.habr.com