Saat ini saya mengalami beberapa masalah dengan cache. Agak terlalu banyak sekarang, jadi saya ingin membersihkannya. I googled dan menemukan perintah kecil ini: sync && echo 3 > /proc/sys/vm/drop_caches
.
Saya masuk sebagai root melalui SSH (tidak menggunakan sudo). Ini adalah upaya yang saya lakukan:
root@server: ~ # ll /proc/sys/vm/drop_caches
-rw-r--r-- 1 root root 0 15. Jan 20:21 /proc/sys/vm/drop_caches
root@server: ~ # echo 3 > /proc/sys/vm/drop_caches
-bash: /proc/sys/vm/drop_caches: Permission denied
root@server: ~ # sudo su -c "echo 3 > /proc/sys/vm/drop_caches"
bash: /proc/sys/vm/drop_caches: Permission denied
root@server: ~ # echo 3 | sudo tee /proc/sys/vm/drop_caches
tee: /proc/sys/vm/drop_caches: Permission denied
3
Ini adalah mesin jarak jauh yang menjalankan Debian. Sejauh yang saya tahu ada beberapa vCores di mesin ini dan menggunakan Virtuozzo untuk virtualisasi.
Saya benar-benar hanya ingin menghapus cache (Jadi saya hanya dapat mengaksesnya menggunakan SSH) .
Saya juga mencoba mendaftarkan ini sebagai cronjob. Tapi itu gagal juga!
linux
permissions
virtualization
proc
openvz
BrainStone
sumber
sumber
sudo
?/proc/sys/vm/drop_caches
benar - benar ada?Jawaban:
Apakah ini sebenarnya mesin jarak jauh, atau hanya sistem jarak jauh ? Jika ini adalah potongan VPS di suatu tempat, (setidaknya beberapa bentuk) virtualisasi OS (mis. OpenVZ) tidak akan mengizinkan ini dari dalam wadah. Anda tidak menjalankan mesin, Anda hanya menjalankan slice Anda.
sumber
sudo
harus mencakup seluruh pengalihan sehingga dapat sepenuhnya dieksekusi oleh root:sumber
echo 3 | sudo tee /proc/sys/vm/drop_caches
Ini adalah perilaku normal di bawah virtualisasi tingkat OS. Ini hanya dapat dijalankan oleh seseorang dengan akses root ke simpul perangkat keras.
Misalnya dengan OpenVZ , Anda tidak mendapatkan instance kernel Anda sendiri dan karena itu, dilarang melakukan perintah seperti ini.
Semua berbagi cache halaman yang sama, jadi untuk menjatuhkan cache hanya instance Anda, kernel harus memeriksa apakah halaman itu milik Anda dan jika instans lain tidak menggunakan halaman ini juga.
Dengan teknik virtualisasi lain seperti KVM atau Xen ini mungkin berfungsi.
sumber
Anda dapat menggunakan
echo
piped untuksudo tee
mengizinkan izin yang diperlukan saat Anda perlu menggema sebagai root.Gunakan
tee --help
untuk membuat daftar opsi lainnya.sumber
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
Perintah ini bekerja untuk saya tanpa
/usr/bin/echo
jawaban mchid. Itu memberi kesalahansh: 1: /usr/bin/echo: not found
. Jadi hanya digunakan 'gema'sumber
Saya memiliki masalah yang sama ketika saya mencoba menggunakan sudo seperti ini:
Solusi saya adalah untuk sementara beralih ke root. Dengan sungguh-sungguh, izin itu harus diaktifkan di sistem Anda:
sumber
Menggunakan pengaturan VM smilar dengan OpenStack dan ini berfungsi (menjalankan Debian):
sumber