Thứ Năm, 28 tháng 10, 2021

Thứ Hai, 25 tháng 10, 2021

Hướng dẫn backup DirectAdmin với command line

 

Trường hợp 1: Backup DirectAdmin với command line cho toàn bộ user

Để backup toàn bộ user chúng ta sử dụng lệnh sau.

  
AZDIGI Tutorial
echo "action=backup&append%5Fto%5Fpath=nothing&database%5Fdata%5Faware=yes&email%5Fdata%5Faware=yes&local%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackups&owner=admin&type=admin&value=multiple&when=now&where=local&who=all" >> /usr/local/directadmin/data/task.queue
    

Ở trên VPS của mình hiện tại chỉ có 1 user và admin nên sau khi chạy lệnh trên và chờ khoảng vài phút thì trong thư mục /home/admin/admin_backups xuất hiện hai tệp tin backup như hình sau.

Trước khi chạy lệnh, chưa có một tệp tin backup nào cả.

Sau khi chạy lệnh backup chúng ta đã có 2 tệp tin backup tương ứng với các user đang có. Trong trường hơp bạn có rất nhiều user hơn thì cần chờ nhiều thời gian hơn và các file sau khi backup sẽ có dần từng file một. Trong trường hợp dung lượng của bạn không đủ để backup đầy đủ tất cả các user thì đến khi đầy hệ thống tự động dừng lại không backup tiếp nữa.

Trường hợp 2: Backup DirectAdmin với command line cho một user duy nhất

Để backup một user chúng ta sử dụng lệnh sau.

  
AZDIGI Tutorial
echo "action=backup&append%5Fto%5Fpath=nothing&database%5Fdata%5Faware=yes&email%5Fdata%5Faware=yes&local%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackups&owner=admin&select%30=testuser&type=admin&value=multiple&when=now&where=local" >> /usr/local/directadmin/data/task.queue
    

Thay thế testuser thành tên user mà bạn muốn restore.

Ở đây mình có một user tên là demo2 mình sẽ sử dụng lệnh sau để tiến hành sao lưu user này.

  
AZDIGI Tutorial
echo "action=backup&append%5Fto%5Fpath=nothing&database%5Fdata%5Faware=yes&email%5Fdata%5Faware=yes&local%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackups&owner=admin&select%30=demo2&type=admin&value=multiple&when=now&where=local" >> /usr/local/directadmin/data/task.queue
    

Sau khi chạy lệnh chúng ta chờ một lát sẽ thấy tệp tin backup đầy đủ của user này tại /home/admin/admin_backup/:

backup DirectAdmin với command line restore

Trong trường hợp bạn muốn khôi phục user demo2 này bạn sử dụng lệnh sau:

  
AZDIGI Tutorial
echo "action=restore&ip%5Fchoice=file&local%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackups&owner=admin&select%30=user%2Eadmin%2Edemo2%2Etar%2Egz&type=admin&value=multiple&when=now&where=local" >> /usr/local/directadmin/data/task.queue
    

Các bạn nhớ thay demo2 thành user của bạn nhé. Trường hợp file backup của bạn tên khác thì bạn nhớ thay thế các tên giữ %2E(Giá trị hex, tương đương cho dấu chấm). Các bạn cũng có thể sử dụng định dạng demo2%2Etar%2Egz thì nó cũng hoạt động tốt.

Lệnh khôi phục này sẽ sử dụng chính IP ở trong cấu hình của tệp tin sao lưu này. Nếu bản sao lưu này trên chính VPS hoặc Server này tạo ra thì không vấn đề gì, nhưng nếu đây là tệp tin sao lưu đến từ VPS hoặc Server khác thì bạn cần thêm tùy chọn ip_choice=select&ip=1.2.3.4 trong đó 1.2.3.4 bạn chỉnh lại thành IP VPS hoặc Server của bạn.

Vậy là xong các bước backup DirectAdmin với command line cho một user duy nhất.

https://huongdan.azdigi.com/backup-directadmin-voi-command-line-how-to/


Read More

Thứ Năm, 21 tháng 10, 2021

Install-Package : No match was found for the specified search criteria and module name

 PS C:\Users\Administrator> Install-Module -Name PSFolderSize

PackageManagement\Install-Package : No match was found for the specified search criteria and module name

'PSFolderSize'. Try Get-PSRepository to see all available registered module repositories.

At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1772 char:21

+ ...          $null = PackageManagement\Install-Package @PSBoundParameters

+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Ex

   ception

    + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

Simply running Register-PSRepository -Default (without any additional parameters) worked for me. After that, the Gallery was successfully registered:

PS C:\Users\Administrator> Register-PSRepository -Default
PS C:\Users\Administrator> Get-PSRepository

Name                      InstallationPolicy   SourceLocation
----                      ------------------   --------------
PSGallery                 Untrusted            https://www.powershellgallery.com/api/v2


PS C:\Users\Administrator> Install-Module -Name PSFolderSize
Read More

PowerShell Installing NuGet, says unable to access internet

 PS C:\Users\Administrator> Install-PackageProvider -Name NuGet

WARNING: Unable to download from URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' to ''.

WARNING: Unable to download the list of available providers. Check your internet connection.

Install-PackageProvider : No match was found for the specified search criteria for the provider 'NuGet'. The package

provider requires 'PackageManagement' and 'Provider' tags. Please check if the specified package has the tags.

At line:1 char:1

+ Install-PackageProvider -Name NuGet

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : InvalidArgument: (Microsoft.Power...PackageProvider:InstallPackageProvider) [Install-Pac

   kageProvider], Exception

    + FullyQualifiedErrorId : NoMatchFoundForProvider,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackagePro

   vider


Try this command first:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Read More

How To Iterate The Content Of A Text File In Powershell

  • Use Foreach
$files = Get-Content -Path D:\PS-Tutorial\file-with-numbers.txt
ForEach ($file in $files) {
  New-Item -Name $file -Path "D:\PS-Tutorial\ForEachEx" -ItemType "directory" | Out-Null } 
}
  • Use ForEach-Object
$files = Get-Content -Path D:\PS-Tutorial\file-with-numbers.txt
$files | ForEach-Object {
   New-Item -Name $_ -Path "D:\PS-Tutorial\ForEach-ObjectEx" -ItemType "directory" | Out-Null 
}
$files = Get-Content -Path D:\PS-Tutorial\file-with-numbers.txt
$files.ForEach( {
   New-Item -Name $_ -Path "D:\PS-Tutorial\ForEachMethodEx" -ItemType "directory" | Out-Null 
} )

 

Read More