কমান্ডের হালনাগাদ ও অবস্থান আবিষ্কার করুন - বাহ্যিক হার্ড ড্রাইভ থেকে ফাইলগুলি আর রিবুট হওয়ার পরে সূচী করা হয় না


20

আমার বাহ্যিক হার্ড ড্রাইভের ফাইলগুলি আর রিবুটের পরে সূচিযুক্ত হবে না। আমাকে পুনরায় মাউন্ট করতে হবে এবং তারপরে চালাতে হবে

# updatedb

প্রতিটি রিবুট পরে। সমস্যাটি আপডেট হয়েছে আমার বাহ্যিক হার্ড ড্রাইভগুলির জন্য কয়েক মিনিট সময় নেয় updated আমি পুনরায় বুট করার পরে আমার বাহ্যিকগুলির জন্য সূচি বজায় রাখতে কোনও উপায় আছে যাতে সনাক্ত কমান্ডটি আমার বাহ্যিক অংশগুলি অনুসন্ধান করতে পারে?

সম্পাদনা: প্রতি অনুরোধ এখানে আমার চশমা:

$ cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"

# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/me/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=me)
/dev/sdb1 on /media/me type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sdd1 on /media/Little Boy type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sde1 on /media/Fat Man type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)

# on_ac_power; echo $?
255

1
কনফিগ ফাইল এবং মাউন্ট অপশন করুন: cat /etc/updatedb.conf, mount,on_ac_power; echo $?
ব্যবস্থা

করবে, প্রায় 8 ঘন্টা কোনও লিনাক্স মেশিনে অ্যাক্সেস থাকবে না
user784637

সাজান, আমি আমার চশমা দিয়ে আমার উত্তর আপডেট করেছি, আপনার সহায়তার জন্য ধন্যবাদ =)
ব্যবহারকারী 784637

<নোট ভবিষ্যতের জন্য> এখানে কিভাবে সাধারণত জিনিসটা কি updatedb(1.) চালান: করছে updatedbসঙ্গে --verboseএবং --debug-pruning। (২.) কী সূচী করা হচ্ছে এবং সূচী করা হচ্ছে না তা দেখতে পাঠ্যের দিকে নজর দিন -> আপনার সামঞ্জস্য করুন /etc/updatedb.conf। আমার grepযে ফাইলগুলির দরকার ছিল সেগুলির জন্য আমাকে বাদ দেওয়া হয়েছিল। উদাহরণ হিসেবে বলা যায় আমি সংশোধন ছিল /etc/updatedb.conf(1.): সঙ্গে PRUNE_BIND_MOUNTS = "no"(2.) কে সরানো nfs nfs4 nfsd autofsথেকে PRUNEFS(3) অপসারণ /netথেকেPRUNEPATHS
ট্রেভর বয়েড স্মিথ

উত্তর:


35

আপনার বাহ্যিক হার্ডডিস্কের ফাইলগুলি সূচীকরণ করা হয় না কারণ updatedbকোনও কিছুকে নীচে সূচি না দেওয়ার জন্য কনফিগার করা হয় /media, যেখানে বাহ্যিক স্টোরেজ সাধারণত মাউন্ট করা হয়। এই কনফিগারেশনটি ফাইলটিতে সেট করা আছে /etc/updatedb.conf। বিশেষ করে এন্ট্রি /mediaমধ্যে PRUNEPATHSলাইন।

আপনি কীভাবে updatedbআপনার বাহ্যিক ড্রাইভকে সূচক করতে পারেন সে সম্পর্কে কিছু ধারণা :

1. বাহ্যিক ড্রাইভটি আনটার মাউন্ট করুন /mnt

যদি আপনার বাহ্যিক হার্ডডিস্কটি স্থায়ীভাবে মাউন্ট হওয়ার কথা থাকে তবে আমি এটিকে কনফিগার করার পরামর্শ দিচ্ছি যাতে এটি নীচের /mntপরিবর্তে মাউন্ট করা যায় /media। এটি সম্পাদনা করে সাধারণত করা যেতে পারে /etc/fstab। এটি সম্পর্কে জানতে "fstab" অনুসন্ধান করুন। সম্পাদনা করার জন্য আপনার সুডোর অধিকারের প্রয়োজন হবে /etc/fstab

২. আপনার বাহ্যিক হার্ডডিস্কের জন্য একটি উত্সর্গীকৃত ডেটাবেস তৈরি করুন এবং চাহিদা অনুযায়ী ক্যোয়ারী।

নিম্নলিখিত কমান্ড একটি উত্সর্গীকৃত ডাটাবেস তৈরি করবে:

updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk

এটি .externalharddisk.dbআপনার বাড়িতে লুকানো ফাইলের ডাটাবেস তৈরি করবে । আপনার sudoএই আদেশের দরকার নেই । ডাটাবেস আপডেট রাখতে আবার একই কমান্ডটি প্রয়োগ করুন। যত্নবান: আপনি যদি বাহ্যিক হার্ডডিস্ক মাউন্ট না করা অবস্থায় এই কমান্ডটি চালান updatedbতবে ফাইলগুলি মুছে ফেলা হবে এবং ডাটাবেসটি খালি হয়ে যাবে will

আপনি সেই কাজটি স্বয়ংক্রিয় করতে স্ক্রিপ্ট সেট আপ করতে পারেন। কীভাবে এটি করতে শিখতে "ক্রোনজব" অনুসন্ধান করুন। দ্রষ্টব্য: আপনি ব্যবহারকারী হিসাবে একটি ব্যবহারকারী ক্রোনজব সেট আপ করতে পারেন। ব্যবহারকারী ক্রোনজব সেট আপ করতে আপনার সুডোর অধিকারের দরকার নেই।

নিম্নলিখিত কমান্ডটি ডাটাবেসটি জিজ্ঞাসা করবে:

locate -d ~/.externalharddisk.db searchterm

আপনি একই সাথে ডেডিকেটেড ডেটাবেস এবং ডিফল্ট ডাটাবেসটিও জিজ্ঞাসা করতে পারেন:

locate -d ~/.externalharddisk.db: searchterm

শেষের দিকে কোলনটি ডিফল্ট ডাটাবেসে অনুসন্ধান করার অর্থ দেয় না।

সহজ ব্যবহারের জন্য আপনি একটি উপাধি তৈরি করতে পারেন। আপনার নীচের লাইনটি রাখুন .bashrc:

alias locate-external='locate -d ~/.externalharddisk.db:'

এখন আপনি locateকেবলমাত্র ডিফল্ট ডাটাবেস locate-externalঅনুসন্ধান করতে এবং আপনার বাহ্যিক হার্ডডিস্কে অনুসন্ধান করতে পারেন।

3. /mediaথেকে সরানPRUNEPATHS

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

উপরন্তু: আপনি অপসারণ /mediaথেকে PRUNEPATHS, এই আচরণ এছাড়াও অন্য কোন বাহ্যিক সঞ্চয় সময় আপনি মাউন্ট আছে এরকম প্রয়োগ করা হবে updatedbডাটাবেস আপডেট করা হয়।


2
আপনি অতিরিক্তভাবে এই ~/.bashrcফাইলটি নিজের ফাইলটিতে যুক্ত করতে পারেন :alias updatedb-external='sudo updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk'
রুবো

আপনার এবং ওপি উভয়কেই +1 করুন। তবে পৃথক বাহ্যিক ডিবি কমান্ডের পরিবর্তে locate-external, আমি --database /mnt/c...ডাব্লুএসএল, --dataabase /mnt/e...ডাব্লুএসএল + লিনাক্সের ভাগ করা স্ক্রিপ্ট এবং নথি এবং --database /var/lib/mlocate/mlocate.dbদ্বৈত বুটযুক্ত উবুন্টু ১ 16.০৪ এর জন্য একটিতে তিনটি ডাটাবেস যুক্ত করার বিষয়ে বিবেচনা করছি । অর্থাত্ একই চিহ্নিত কমান্ড লাইনের তিনটি ডাটাবেস (অবশ্যই একটি উপাধি সহ)। তবে আমি শুরু করার আগে এটি কাজ করবে কিনা তা জানতে পেরে ভাল লাগবে। আমি কি এই বিষয়ে আপনার ধারণা পেতে পারি?
WinEunuuchs2Unix

আমি সরানোর যুক্তি সাথে একমত নই /mediaথেকে PRUNEPATHS। হ্যাঁ এতে আপনার উল্লেখ করা সমস্যাটি রয়েছে, পুরোপুরি বাদ দেওয়া আরও খারাপ - আপনি এই ড্রাইভে ফাইলগুলি কখনও খুঁজে পাবেন না। এটি আপনার আঙ্গুলগুলি কেটে দেওয়ার মতো যাতে রান্না করার সময় তারা জ্বলে না যায় (যদি না বোঝা যায় যে আরও কোনও সুস্পষ্ট সমাধান যা আমি দেখছি না)
শ্রীধর সারনোবাত

2

ইন updatedb.confআপনি /mediaমধ্যে PRUNEPATHS। আপনার বাহ্যিক ড্রাইভগুলি সেখানে মাউন্ট করা আছে বলে মনে হচ্ছে আপনার এটি অপসারণ করা উচিত।


2

এগুলি লেসমানার উত্তরে যুক্ত করা আরও অলঙ্কারাদি

[1] সামান্য অলঙ্করণ: আমি অনুসন্ধানের প্রশ্নের সন্ধানের ক্ষেত্রে এখন আর কোনও সমস্যা নয় তা নিশ্চিত করার জন্য -i যুক্ত করার পরামর্শ দিতে পারি : সুতরাং .bashrc >> এ যুক্ত করার জন্য >>

উপসর্গ সনাক্ত-বহিরাগত = 'সন্ধান-ডি ~ /। এক্সটার্নালডিস্ক.ডিবি: -i '

[২] উভয় ডাটাবেস আপডেট করার ক্ষেত্রে ; মূল এইচডিটিতে একটি এবং বাহ্যিক ক্ষেত্রে নতুন; এটি সম্ভবত .bashrc এ আরও একটি এন্ট্রি যুক্ত করার উপযুক্ত

ওরফে আপডেট এএলএল = 'সুডো আপডেটডব && আপডেট বি -0 0 -o ~ /। এক্সটার্নালডিস্ক.ডিবি -ইউ / মিডিয়া / এক্সটার্নারডিস্ক'

এবং তারপরে updateALLএকবারে উভয় ডাটাবেস আপডেট করতে কেবল টার্মিনালে চালানো

পিএস: অবশ্যই . ~/.bashrcএকটি নতুন লাইন .bashrc PS² এ একবার সংরক্ষণ করার পরে এটি দৃ firm় করতে চালাতে ভুলবেন না
: এবং অবশ্যই externalharddiskউপরের সমস্ত লাইনগুলিতে আপনার বাহ্যিক এইচডি নাম অর্থাত / মিডিয়া / আপনার নিজের নাম দ্বারা প্রতিস্থাপন করা হয়েছে

* PS³ এবং আপনি অবশ্যই উভয় আপডেটের সাথে সংঘাত করতে পারেন এবং আপনার .bashrc এ সনাক্ত করতে পারেন

ওরফে এলও = 'সুডো আপডেটডব && আপডেট বি -l 0 -o ~ / .externharddisk.db -U / মিডিয়া / বহিরাগতদিক; -d locate / .externharddisk.db: -i 'সনাক্ত করুন

সুতরাং এখন আপনাকে আপডেট করতে এবং অনুসন্ধান করতে হবে যা দরকার তা হল এলওতে প্রবেশ করা 'আপনি যে শর্তগুলি খুঁজছেন তা অনুসরণ করুন'


সিকোয়েন্সিং আপডেটের জন্য +1 এবং তারপরে সনাক্ত করুন
এলএমএসিংহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.