วิธีตรวจสอบพื้นที่ว่างบนเซิร์ฟเวอร์ SFTP


11

เมื่อเร็ว ๆ นี้ฉันพบปัญหาการขาดพื้นที่ดิสก์บนเซิร์ฟเวอร์ SFTP และฉันรู้ว่าฉันไม่รู้ว่าจะตรวจสอบจำนวนเงินที่เหลืออยู่หรือจำนวนทั้งหมดได้อย่างไร

ไม่มีใครรู้วิธีการทำเช่นนี้ผ่านแอปพลิเคชันเช่น FileZilla หรืออาจมีคำสั่งที่สามารถใช้สำหรับวัตถุประสงค์นี้ได้?

โปรดทราบว่าเซิร์ฟเวอร์โฮสต์ที่บุคคลที่สามและฉันหวังว่าจะมีวิธีตอบคำถามนี้โดยไม่ต้องผ่านพวกเขา

ปรับปรุง:

ฉันพยายามเชื่อมต่อผ่านเชลล์โดยใช้ทั้ง putty และ cygwin ssh สีโป๊วล้มเหลวในขณะที่ cygwin ส่งข้อความแสดงข้อผิดพลาดต่อไปนี้ให้ฉัน:

$ ssh [user]@[host] -i "[priv.key]"
Last login: Wed Aug 17 12:54:46 2011 from 195.204.103.176
Could not chdir to home directory /local00/ftproot/[user]: No such file or directory
/usr/local/sbin/scponlyc: No such file or directory
Connection to [host] closed.

ความคิดใด ๆ


1
คุณมีสิทธิ์เข้าถึงเชลล์ไปยังเซิร์ฟเวอร์หรือไม่?
สเวน

ฉันพยายามเชื่อมต่อผ่าน PuTTy และ SSH โดยใช้ผู้ใช้โฮสต์และคีย์ส่วนตัวเดียวกัน แต่เมื่อกระบวนการตรวจสอบสิทธิ์เริ่มเปิดปิดหน้าต่าง ฉันไม่แน่ใจว่าจะตีความได้อย่างไรว่าการรับรองความถูกต้องล้มเหลวหรือไม่ถ้าฉันไม่มีสิทธิ์เข้าถึงเชลล์ฉันสามารถเชื่อมต่อด้วยการเข้าสู่ระบบเดียวกันกับ FileZilla
kjetilh

โปรดดูคำถามที่อัปเดตของฉัน
kjetilh

1
ในกรณีนี้คุณตอบเรียบร้อยแล้วโดย mailq: ไม่มีวิธีการเช็คอินในscponlyสภาพแวดล้อม
François Feugeas

คำตอบ:


15

scponlyเปลือกอาจช่วยให้quotaคำสั่ง (ถ้าเปิดใช้งาน) แต่ดูเหมือนว่าคุณมีการscponlyกำหนดค่าให้รองรับ SFTP เท่านั้นโดยไม่อนุญาตการเข้าถึงเชลล์

โปรโตคอล SFTP อนุญาตให้ตรวจสอบพื้นที่ดิสก์ (ตรงกันข้ามกับคำตอบอื่น ๆ ที่พูด)

แยกออกจากSFTP - ตรวจสอบพื้นที่ว่างคำถามของ stackoverflow.com:

โพรโทคอล SFTP เวอร์ชัน 6 อนุญาตให้หนึ่งตรวจสอบพื้นที่ว่าง ( SSH_FXP_EXTENDEDชื่อคำขอspace-available) เซิร์ฟเวอร์ SSH / SFTP ส่วนใหญ่ (โดยเฉพาะ OpenSSH ซึ่งเป็นเซิร์ฟเวอร์ที่แพร่หลายที่สุด) รองรับ SFTP เวอร์ชัน 3 เท่านั้น

OpenSSH ในอีกทางหนึ่งสนับสนุนstatvfs@openssh.comส่วนขยายที่เป็นกรรมสิทธิ์

ส่วนขยาย OpenSSH ได้รับการสนับสนุนโดยไคลเอนต์ SFTP บางตัว

  • เห็นได้ชัดจากsftpลูกค้า OpenSSH ผ่านdfคำสั่ง:

    df [-hi] [path]
    แสดงข้อมูลการใช้งานสำหรับระบบไฟล์ที่ถือครองไดเรกทอรีปัจจุบัน (หรือเส้นทางถ้าระบุ) หากระบุ-hแฟล็กข้อมูลความจุจะถูกแสดงโดยใช้ส่วนต่อท้าย "ที่มนุษย์อ่านได้" -iร้องขอธงแสดงข้อมูล inode นอกเหนือจากข้อมูลความจุ คำสั่งนี้รองรับเฉพาะเซิร์ฟเวอร์ที่ใช้ส่วนขยาย '' statvfs@openssh.com ''

    sftp> df -h
        Size     Used    Avail   (root)    %Capacity
       591GB    358GB    203GB    233GB          60%
    
  • WinSCP รองรับเช่นกัน (ดูที่กล่องโต้ตอบข้อมูลเซิร์ฟเวอร์และโปรโตคอล ):

    กล่องโต้ตอบ WinSCP Server และข้อมูลโปรโตคอล

    (ฉันเป็นผู้เขียน WinSCP)


Yeap หลังจากใช้ SFTP บรรทัดคำสั่งเพื่อเชื่อมต่อกับเซิร์ฟเวอร์หนึ่งสามารถใช้df -h /เพื่อตรวจสอบพื้นที่ว่าง ฯลฯ
lyk

1
แต่น่าเสียดายที่ไม่ได้สนับสนุนเซิร์ฟเวอร์ทั้งหมดว่า SFTP> DF Server ไม่สนับสนุน statvfs@openssh.com ขยาย
โทมัส Lauria

@ThomasLauria มันเป็นกรรมสิทธิ์ของ OpenSSH ในขณะที่เซิร์ฟเวอร์อื่น ๆ อาจเลือกที่จะสนับสนุนเช่นกัน แต่ก็ไม่ทั้งหมด
Martin Prikryl

1
ssh <host> df -h

จะให้ข้อมูลที่จำเป็นทั้งหมดแก่คุณในกรณีที่ไม่มีโควต้าดิสก์ หากคุณไม่มีสิทธิ์เข้าถึงเชลล์ (หรือเรียกใช้คำสั่งบางอย่างเช่นผ่านทาง PHP exec) คุณจะไม่สามารถตรวจสอบพื้นที่ดิสก์ได้ แต่ถ้าคุณไม่มีเชลล์คุณจะต้องรับผิดชอบต่อ ดูแลเซิร์ฟเวอร์และจัดการพื้นที่ดิสก์?


มันไม่ได้เป็นความรับผิดชอบของฉัน แต่ฉันได้เขียนสคริปต์การส่งออก / นำเข้าบางส่วนเกี่ยวกับเซิร์ฟเวอร์ SFTP และฉันได้รับแจ้งว่ามีข้อผิดพลาดเกิดขึ้น ในที่สุดเราต้องการปรับ / เขียนกระบวนการล้างข้อมูลใหม่ แต่ตอนนี้ฉันต้องการข้อมูลเพิ่มเติม
kjetilh

-1

ด้วยชุดคำสั่ง SFTP ทำให้ไม่มีความเป็นไปได้ในการรับขนาดที่มีอยู่หรือพื้นที่ที่ใช้

หากคุณสามารถ SSH ไปยังเซิร์ฟเวอร์ (โฮสต์เดียวกันผู้ใช้รหัสผ่าน) คุณสามารถออกdf -hเพื่อดูพื้นที่ว่าง หรือdu -hในโฟลเดอร์เพื่อดูพื้นที่ที่ใช้ของโฟลเดอร์


ไม่ใช่ความจริงที่ SFTP ไม่อนุญาตให้มีการใช้งานดิสก์ ดูคำตอบอื่นของฉัน
Martin Prikryl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.