কমান্ড লাইন থেকে এইচটিটিপিএসের মাধ্যমে কীভাবে কোনও ওয়েবডিএভি সার্ভারে পুনরাবৃত্তভাবে ডিরেক্টরি আপলোড করবেন?


11

আমি বরং একটি সাধারণ পরিস্থিতির মুখোমুখি হচ্ছি, আমাকে যেমন একটি ওয়েবডিএভি সার্ভারে ফাইলের একটি বড় গাছ আপলোড করতে হবে যা এইচটিটিপিএস এর মাধ্যমে অ্যাক্সেসযোগ্য। আমাকে অবশ্যই কমান্ড লাইনের সাথে একটি লিনাক্স বাক্স থেকে আপলোড শুরু করতে হবে। আমি বাক্সে প্রোগ্রামগুলি ইনস্টল করতে পারি।

আমি ক্যাডেভার চেষ্টা করেছি তবে এটি পুনরাবৃত্ত ডিরেক্টরিটি আপলোড সমর্থন করে না।

এটি অর্জনের জন্য আপনি কি সাধারণ সরঞ্জাম / স্ক্রিপ্টগুলি জানেন?


ঠিক আছে, আমি এমন কিছু পেয়েছি যা এটি করেছিল।

আমি davpush.plস্ক্রিপ্ট থেকে শুরু করেছি যা এখানে পাওয়া যায় https://github.com/ptillemans/davpush

কিছু পরিবর্তন প্রয়োজন ছিল:

  • সমস্ত প্রতিস্থাপন " dav://" থেকে " https://"
  • " print POUT "open";" এর আগে " print POUT $script;" যুক্ত করুন

অভিশাপ, কেবল অসভ্য একটি ডিরেক্টরি আপলোড করতে পার্ল স্ক্রিপ্ট হ্যাক করতে হবে। আমি এখনও সহজ সরঞ্জাম / স্ক্রিপ্ট খুঁজছি।

উত্তর:


2

চেষ্টা করুন gnomevfs-copy:

সম্পাদনা: gvfs- অনুলিপি পুনরাবৃত্ত হয় না। আমি এটি প্যাচ করেছিলাম তবে এখনও কোডটি প্রকাশের জন্য হাবি। এর মধ্যে, পেরডাভ থেকে চেক ডেভ ave এটি পুনরাবৃত্তি স্থানান্তর করে।

আপনার যদি ফিউজ অক্ষম না থাকে, আপনি davfs2 চেষ্টা করতে পারেন

আপনি যদি নিজের সরঞ্জামটির কোডের বিরুদ্ধে না হন তবে আপনি জিভিএফএস ব্যবহার করতে পারেন এবং জিভিএফএস-অনুলিপির উত্স কোড থেকে অনুপ্রেরণা পেতে পারেন

আমার অনুরূপ সমস্যা হচ্ছে, তাই আমি আরও ভাল সমাধান নিয়ে ফিরে আসতে পারি


কিও ক্লায়েন্ট এটি করতে পারে। দুর্ভাগ্যক্রমে এটি বেশ সীমাবদ্ধ বাক্স এবং আমার জিনোমেফস-অনুলিপি বা কিও-ক্লায়েন্ট ইনস্টল নেই।
এসকাটোস

আপনি যদি পারেন তবে ডেভ চেষ্টা করুন। এটি পুনরাবৃত্তভাবে কাজ করে (তবে দুর্ভাগ্যক্রমে আমার কাছে, এটি সার্ভার থেকে মাল্টিস্ট্যাটাসের প্রতিক্রিয়া বুঝতে পারে না)
ব্যবহারকারী 36520

ডেভ লক্ষ্য সার্ভার দিয়ে এটি করেছেন, ধন্যবাদ! প্রকৃতপক্ষে এটি ডেভপুশ স্ক্রিপ্টের ভিত্তিতে আমি যা করেছি তা থেকে খুব বেশি দূরে নয় যা পার্ল এইচটিটিপি :: ডিএভি এপিআই ব্যবহার করে নিজেই ক্যাডভার ব্যবহার করে। তবে ডেভের সাহায্যে কেউ একগুচ্ছ কমান্ড সহ শেল স্ক্রিপ্ট লিখতে পারে না কারণ এটি কেবল ইন্টারেক্টিভ। উত্তর গৃহীত হয়েছে :)
এসকেটোস

8

এখানে একটি দ্রুত গভীর ক্ষত শেল স্ক্রিপ্ট ব্যবহারের Tha করতে অনুমতি দেয় যে মৃতদেহ :

#!/bin/sh

usage () { echo "$0 <src> <cadaver-args>*" >/dev/stderr; }
error () { echo "$1" >/dev/stderr; usage; exit 1; }

test $# '<' 3 || \
    error "Source and cadaver arguments expected!";

src="$1"; shift;
test -r "$src" || \
    error "Source argument should be a readable file or directory!";

cd "$(dirname "$src")";
src="$(basename "$src")";
root="$(pwd)";
rc="$(mktemp)";
{
    find "$src" '(' -type d -a -readable ')' \
    -printf 'mkcol "%p"\n';
    find "$src" '(' -type f -a -readable ')' \
    -printf 'cd "%h"\nlcd "%h"\n'            \
    -printf 'mput "%f"\n'                    \
    -printf 'cd -\nlcd "'"$root"'"\n';
    echo "quit";
} > "$rc";

cadaver -r "$rc" "$@";
rm -f "$rc";

যদি এটির নামকরণ করা হয় davcpy.shতবে একটি আদেশের মতো like

davcpy.sh "<local-directories>/<dirname>" "https://<target-website>/<some-directories>/"

থেকে একটি পুনরাবৃত্তির অনুলিপি অনুমতি দেয়

<local-directories>/<dirname>

নামে একটি প্রত্যন্ত এক

<some-directories>/<dirname>

মনে রাখবেন এটি cadaverলগইন / পাসওয়ার্ডের ইন্টারেক্টিভ টাইপিংয়ের অনুমতি দেওয়ার জন্য স্ক্রিপ্টিং সুবিধাটি ব্যবহার করে । আমি মনে করি এটি ফাঁকা থাকা অদ্ভুত ফাইল এবং ডিরেক্টরিগুলির নাম পরিচালনা করার পক্ষে যথেষ্ট শক্তিশালী, তবে আমি এর মতো কোনও ক্ষেত্রে পরীক্ষা করি নি।


1

ওএসএক্স-এ কাজ করে এমন এনবার্থের উত্তরের একটি পরিবর্তন:

#!/bin/sh

usage () { echo "$0 <src> <cadaver-args>*" >/dev/stderr; }
error () { echo "$1" >/dev/stderr; usage; exit 1; }

test $# '<' 3 || \
    error "Source and cadaver arguments expected!";

src="$1"; shift;
test -r "$src" || \
    error "Source argument should be a readable file or directory!";

cd "$(dirname "$src")";
src="$(basename "$src")";
root="$(pwd)";
rc="$(mktemp -t davcopy)";

{
    find "$src" -type d | xargs -I{} echo 'mkcol '{}
    find "$src" -type f \
    -exec echo 'cd '$(basename {}) \; \
    -exec echo 'lcd '$(basename {}) \; \
    -exec echo 'mput '{} \; \
    -exec echo 'cd -' \; \
    -exec echo 'lcd '"$root" \;
    echo "quit";
} > "$rc";

cadaver -r "$rc" "$@";
rm -f "$rc";

ব্যবহার একই। Nberth এর উত্তর থেকে উদ্ধৃতি:

যদি [উপরের] নাম davcpy.sh নামকরণ করা হয় তবে একটি কমান্ডের মতো

davcpy.sh "<local-directories>/<dirname>" "https://<target-website>/<some-directories>/"

থেকে একটি পুনরাবৃত্তির অনুলিপি অনুমতি দেয়

<local-directories>/<dirname>

নামে একটি প্রত্যন্ত এক

<some-directories>/<dirname>

0

আমি উবুন্টু লিনাক্সে আছি। ফিউজ, (ইউজারস্পেসে ফাইল সিস্টেম) এবং মাউন্টডাভস (davfs2) এর সাহায্যে আপনি স্থানীয় ফোল্ডার হিসাবে ওয়েবডাভ সার্ভারে একটি সাব-ডিরেক্টরিকে মাউন্ট করতে পারেন।

আপনার টার্মিনালটি খুলুন এবং নিম্নলিখিত হিসাবে এগিয়ে যান:

  • Davfs2 ইনস্টল করুন যদি এটি ইতিমধ্যে বিদ্যমান না থাকে: sudo apt-get install davfs2

  • ওয়েবডাভ সার্ভারের সাথে সংযুক্ত করুন:

    sudo mount.davfs -o user=knb,rw https://webdav.site.de/data /mnt/somedir

(ফাইল সিস্টেমের মালিক অবশ্যই প্রবেশ করতে হবে, অন্যথায় লেখার অধিকার উপস্থিত নেই)

অতিরিক্তভাবে আমাকে এই লাইনগুলিতে প্রবেশ করতে হয়েছিল /etc/dafs2/davfs2.conf:

use_proxy       0         
use_locks       0
if_match_bug    1

Https://bugs.launchpad.net/ubuntu/+source/davfs2/+bug/466960 দেখুন

mount - আদেশ - ফলাফল (আউটপুট শেষ লাইন):

https://webdav.mysite.de/icdp on /media/somedir type fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=0,allow_other,max_read=16384,uid=1000,gid=0,helper=davfs)

~/.davfs2/secretsপুনরায় বুট থেকে বেঁচে থাকা স্থায়ী মাউন্টগুলির জন্য কোনও অদ্ভুত ফাইল রয়েছে কিনা তাও পরীক্ষা করতে পারেন ।

এখন আপনি কমান্ড জারি করতে পারেন cp -vr /data/myphotos /media/somedirএবং ফাইলগুলি পুনরাবৃত্তভাবে অনুলিপি করা হবে এবং ওয়েবডাভ সাইটে আপলোড করা হবে।


0

একটি সমাধান Rclone হতে পারে । এটি একতরফা কমান্ড-লাইন সিঙ্ক প্রোগ্রাম, আরএসইএনসি-র অনুরূপ, যা ওয়েবডিএভি সমর্থন করে (অন্যদের মধ্যে)। গন্তব্যস্থলে থাকা ফাইলগুলি এড়িয়ে যাওয়া, এটি একটি ডিরেক্টরিকে পুনরাবৃত্তভাবে অনুলিপি করতে পারে। সিঙ্ক আচরণটি নিয়ন্ত্রণ করার জন্য এটিতে কিছু কমান্ড লাইন বিকল্প রয়েছে, উদাহরণস্বরূপ, আপনি টার্গেট ফাইলগুলি যদি উত্স থেকে চলে যায় তবে মুছতে চান কিনা। অনেকগুলি ডিস্ট্রোয়ের জন্য প্যাকেজ উপলব্ধ রয়েছে তবে আপনি প্লেইন বাইনারি ইনস্টল ও চালাতে পারেন। প্রথমবার, আপনাকে একটি "রিমোট" সংজ্ঞায়িত করতে হবে:

rclone config create my-remote webdav \
    url https://my-webdav-server/my-dir/ \
    vendor other \
    user 'onno'  pass 'mypasswd'

এর পরে, আপনি ফাইল এবং ডায়ারগুলি অনুলিপি বা সিঙ্ক করতে পারেন:

rclone copy /home/onno/mydir my-remote:
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.