⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.74
Server IP:
104.21.32.1
Server:
Linux vmi2315822.contaboserver.net 5.15.0-134-generic #145-Ubuntu SMP Wed Feb 12 20:08:39 UTC 2025 x86_64
Server Software:
LiteSpeed
PHP Version:
8.3.21
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
local
/
CyberCP
/
plogical
/
View File Name :
rebuildQuotas.py
import os,sys sys.path.append('/usr/local/CyberCP') import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") try: django.setup() except: pass import subprocess class rebuildQuotas: def __init__(self): pass def Rebuild(self): try: print("Fixing and rebuilding Quotas...") fstab_path = '/etc/fstab' rData = open(fstab_path, 'r').read() if rData.find('xfs') > -1: command = "mount | grep ' / '" try: qResult = subprocess.run(command, capture_output=True, universal_newlines=True, shell=True) except: qResult = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, shell=True) if qResult.stdout.find('usrquota') > -1: print("Looks like Quotas are enabled in filesystem, moving on..") else: print("Looks like Quotas are not enabled in filesystem, exiting.") print("Please follow this guide to enable Quotas on XFS file system: ") exit(1) else: command = "mount | grep quota" try: qResult = subprocess.run(command, capture_output=True, universal_newlines=True, shell=True) except: qResult = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, shell=True) if qResult.stdout.find('usrquota') > -1: print("Looks like Quotas are enabled in filesystem, moving on..") else: print("Looks like Quotas are not enabled in filesystem, exiting.") exit(1) from websiteFunctions.models import Websites for website in Websites.objects.all(): print(f"Rebuilding quotas for {website.domain}...") command = 'chattr -R -i /home/%s/' % (website.domain) try: qResult = subprocess.run(command, capture_output=True, universal_newlines=True, shell=True) except: qResult = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, shell=True) if website.package.enforceDiskLimits: spaceString = f'{website.package.diskSpace}M {website.package.diskSpace}M' command = f'setquota -u {website.externalApp} {spaceString} 0 0 /' print(command) try: qResult = subprocess.run(command, capture_output=True, universal_newlines=True, shell=True) except: qResult = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True, shell=True) else: print(f"Ignored {website.domain} because the selected package does not enforce disk limits.") except: pass def main(): rbQ = rebuildQuotas() rbQ.Rebuild() if __name__ == "__main__": main()