আমি কীভাবে এক লাইনে এফটিপি আদেশগুলি কার্যকর করব?


18

আমি যখন এফটিপিতে লগইন করি তখন এটিই করি:

ftp user:password@server
ftp: user:password@server: Unknown host
ftp> echo HELLO WORLD!
ftp> quit

আমি এক লাইনের এফটিপি কমান্ড করতে চাই ...

ftp user:password@server -command "echo HELLO WORLD"

অথবা

"echo HELLO WORLD" | ftp user:password@server 

অনুরূপ কিছু ... একটি স্ক্রিপ্টের অংশ হিসাবে আমি তৈরি করার চেষ্টা করছি। কিছুই স্থানান্তরিত হচ্ছে না, আমাকে কিছু নির্দেশাবলী প্রতিধ্বনি করা দরকার এবং এটি আমার সিস্টেমে দুটির মধ্যে এটি করার সবচেয়ে সহজ উপায়।


1
অপেক্ষা করুন, এফটিপি এর জন্য নয় ! এফটিপি বলতে ফাইল স্থানান্তর প্রোটোকল বোঝায়। আপনার এসএসএইচ দরকার।
নিকগুলেটস্কি

যখন আপনাকে কিছু নখ চালাতে হবে এবং আপনার যা কিছু আছে তা একটি ইস্ত্রি বোর্ড ... আপনার যা আছে তা দিয়ে আপনি তা করেন। আমি টেলনেট চেষ্টা করছি, তবে এফটিপি কাজ করে। দ্বিতীয় সিস্টেমের সীমিত নিয়ন্ত্রণ এবং কী নয় ... এফটিপি প্রতিধ্বনি যদি এটি "আয়রণ বোর্ড" হয় তবেও কাজ করে।
ওয়ার্নারসিডি

ঠিক আছে, এটি আমার পক্ষে কার্যকর হয়নি ...nick@AccessDenied:~$ ftp ftp> echo "hi" ?Invalid command ftp>
নিকগুলেটস্কি

1
ftpকোন echoআদেশ নেই। lftpকরে, তবে এটি নিখুঁত স্থানীয়, তাই আপনি কেন নিজে থেকে তা করতে চান তা আমি দেখতে পাই না ....
পুলি

@ নিকগুলেটস্কি হ্যাঁ ... আমি কী ভুল করছি তার উত্তর পাওয়ার চেষ্টা করছিলাম (সম্ভবত আমি আরও পরিষ্কার হতে পারতাম)। চার্লসের উত্তর রয়েছে যা আমার পক্ষে কাজ করে (একটি ক্লাই-পিএইচপি সমাধান ছাড়াও যা আমি পেয়েছিলাম)।
ওয়ার্নারসিডি

উত্তর:


20

এটি আসলে এসএসএইচের আরও কাজ (যেমন অন্যরা উল্লেখ করেছেন), তবে আপনি যদি এফটিপি ব্যবহার করতে দৃ determined়প্রতিজ্ঞ হন, তবে lftp ব্যবহার করে দেখুন । এটি উবুন্টুর বর্তমানে সমর্থিত সমস্ত সংস্করণের জন্য অবাধে উপলভ্য। আপনি কমান্ড দিয়ে এটি ইনস্টল করতে পারেন sudo apt install lftp

lftp -u username,password -e "your command;quit" ftp.site.com

lftp -cকমান্ডটি চালিত করে একটি স্যুইচ নথি করে এবং তারপরে প্রস্থান করে তবে বেশিরভাগ বিতরণে এটি ভাঙা দেখা যাচ্ছে। -eআপনি সংযুক্ত না রাখলে আপনাকে সংযুক্ত রাখবে quit


1
আইইউইউ ... সাধারণ পাঠ্য পাসওয়ার্ড ...
নিকগুলেটস্কি

-cউবুন্টু সম্পর্কে আমার জন্য ভাল কাজ করে।
পুলি

2
কমান্ড লাইনে আপনাকে পাসওয়ার্ড দেওয়ার দরকার নেই: একটি ভাল বিকল্প হ'ল এটি প্রবেশ করানো ~/.netrcএবং নিশ্চিত করা উচিত যে এটি মোড 0600। এফটিপি তারে নন-প্লেইন-পাঠ্য পাসওয়ার্ডগুলির জন্য আলোচনা করতে পারে।
পুলি

ওই কাজগুলো! অসাধারণ. হ্যাঁ ... এটি "ভাল" সমাধান নয়, তবে আমার অপশনগুলি দ্বিতীয় মেশিনে সীমাবদ্ধ তাই FTP, যখন কুৎসিত হয়, কাজ করে।
ওয়ার্নারসিডি

19

আমি এই থ্রেডটি খুঁজে পেয়েছি যখন আমি একটি মেশিন থেকে এইচটিপি সার্ভারে একটি ফাইল স্থানান্তর কার্যকর করার জন্য একটি একক ftp কমান্ড পাওয়ার উপায় অনুসন্ধান করছিলাম। এটি এখানে:

এতে ftp কমান্ড দিয়ে একটি ফাইল তৈরি করুন: (এটিকে 'ftpcommands.txt' বলুন)

 open YourFtpServer.com
 user YourUserName YourPassword
 put localfilename remotefilename
 bye

তারপরে ftp কমান্ডটি চালান এবং এতে ফাইলটি ফিড করুন:

 ftp -n < ftpcommands.txt

-N বিকল্পটি আপনাকে 'ওপেন' কমান্ডটি গ্রহণ করার পরে স্বয়ংক্রিয়ভাবে লগ ইন করার চেষ্টা থেকে এফটিপিপি রাখে।

আশা করি যে কাউকে সাহায্য করবে। আমি অনলাইনে এমন কিছু খুঁজে পাইনি যা এই সমাধান ছিল, তাই আমাকে এটি নিজেই বের করতে হয়েছিল।


দ্রষ্টব্য: যদি আপনার ফাইল ট্রান্সফার "200" প্রতিক্রিয়াতে ব্যর্থ হয়, প্যাসিভ মোডে প্রবেশের জন্য ফাইল স্থানান্তরের ঠিক আগে "প্যাসিভ" কমান্ড যুক্ত করার চেষ্টা করুন।
নিক জিংগার

2

দূরবর্তীভাবে আদেশগুলি কার্যকর করার জন্য আপনি এফটিপি ব্যবহার করতে পারবেন না। এটি ফাইল স্থানান্তর প্রোটোকল বোঝায়। আপনার আসলে যা প্রয়োজন তা হ'ল এসএসএইচ।

আপনাকে যা করতে হবে তা হ'ল sshউভয় মেশিনে প্যাকেজ ইনস্টল করা এবং তারপরে পাসওয়ার্ড-কম লগইন সেট আপ করতে এই গাইডটি অনুসরণ করুন ।

এবং এখন এটি কল কিভাবে:

ssh username@host echo "Hello World\!"

উদাহরণস্বরূপ, এটি আমি নিজের সাথে এটি করছি:

nick@AccessDenied:~$ ssh nick@localhost echo "Hello World\!"
Hello World!

দ্বিতীয় সিস্টেমে এসএসএইচ নেই। আমি পিএইচপি তে আসলে কিছু কাজ পেয়েছি এফটিপি_আরডাব্লু এর মাধ্যমে, তবে আমি দেখতে পাচ্ছি যে আমি এই মুহুর্তে এই কাজটি করতে পারছি না।
ওয়ার্নারসিডি

1

আপনার @ les / .bashrc ফাইলে অন্তর্ভুক্ত @ চারেলসব্রিজ উত্তরটি সম্পূর্ণ করা:

alias yoursite="lftp -u <username> -e \"<commandA;commandB>\" yoursite.com"

ফাইলটি উত্স:

source ~/.bashrc

এখন লগইন করতে আপনার নাম "thyiteite" ব্যবহার করুন এবং আপনি যতটা কমান্ড চান তা কার্যকর করতে পারেন।


0

ব্যস্তবক্সটি ব্যবহার করে ইনস্টল করুন:

apt-get install busybox

ব্যস্তবক্স লিনাক্স বা এম্বেড থাকা উভয় সিস্টেমে কাজ করতে পারে, তারপরে ftpget এবং ftpput ব্যবহার করতে পারে

busybox ftpput -u USER -p PASSWD URL_FTPSERVER FILE_U_WANT

busybox ftpget -u USER -p PASSWD URL_FTPSERVER FILE_U_WANT
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.