How to Back Up Your Server with Proxmox Backup Server (PBS)

How to Back Up Your Server with Proxmox Backup Server (PBS) Backing up your server is essential, and Proxmox Backup Server (PBS) makes it straightforward and reliable. Here’s a step-by-step guide to get you started: Step 1: Set Up Proxmox Backup Server Install PBS on a dedicated machine or virtual environment. You can download the ISO and follow the installation guide here. Once installed, access the PBS web interface at https://<PBS_IP>:8007 and log in with your credentials. Step 2: Configure a Datastore In the PBS web interface, create a datastore to store your backups: Navigate to Datastore > Add Datastore. Provide a name and specify the storage path. Step 3: Connect PBS to Proxmox VE In your Proxmox VE web interface: Go to Datacenter > Storage > Add > Proxmox Backup Server. Enter the PBS IP address, port (default is 8007), and credentials. Select the datastore you created earlier. Step 4: Create a Backup Job In Proxmox VE: Navigate to Datacenter > Backup > Add. Choose the VMs or containers you want to back up. Select the PBS storage as the target. Configure the schedule and retention settings to suit your needs. Step 5: Run the Backup You can manually trigger a backup by selecting the backup job and clicking Run Now. Alternatively, backups will run automatically based on the schedule you set. Pro Tips for Effective Backups Retention Policies: Set up different retention policies for daily, weekly, and monthly backups to optimize storage. Verification: Use the verification feature to ensure your backups are valid and restorable. Notifications: Enable email notifications to stay informed about backup successes or failures. With PBS, you can ensure your server data is safe and easily recoverable. Whether you’re managing a home lab or a production environment, these steps will help you set up a robust backup system.

March 15, 2025 · 2 min · Taner

How to Install and Configure OpenSSH Server on Debian

How to Install and Configure OpenSSH Server on Debian Securely managing remote access is essential for any server administrator. This guide will walk you through installing and configuring the OpenSSH server (sshd) on Debian. 1. Update Package List Keep your package index up to date: sudo apt-get update 2. Install OpenSSH Server Install the OpenSSH server package: sudo apt-get install openssh-server 3. Check SSH Service Status Verify that the SSH service is running: ...

March 15, 2025 · 2 min · Taner

How to Install Proxmox and Apply the tteck Proxmox Script

How to Install Proxmox and Apply the tteck Proxmox Script Proxmox is a powerful virtualization platform that allows you to manage virtual machines and containers effortlessly. In this guide, we’ll walk you through installing Proxmox and applying the tteck Proxmox script to optimize your setup. Step 1: Download Proxmox ISO Image Visit the Proxmox ISO Downloads page. Locate the latest Proxmox Installer and click Download to save the file. Step 2: Prepare Installation Medium Write the Proxmox ISO image to a USB drive using a tool like Etcher or Rufus. Alternatively, on Linux, use the dd command: sudo dd bs=1M if=./proxmox-ve_*.iso of=/dev/sdX conv=fdatasync Replace sdX with the name of your USB device. Step 3: Launch the Proxmox Installer Insert the USB drive into the target machine and boot from it. Access the boot menu (use keys like Esc, F2, F10, F11, or F12) and select the USB drive. Choose Install Proxmox VE from the installer menu and follow the on-screen prompts. Step 4: Run Proxmox Once installed, remove the USB drive and reboot the system. Select Proxmox Virtual Environment GNU/Linux from the GRUB menu and press Enter. Open a browser and navigate to the IP address shown in the Proxmox welcome message. Log in using the root credentials you set during installation. Step 5: Apply the tteck Proxmox Script In the Proxmox web interface, open the Shell. Run the following command to download and execute the tteck Proxmox script: bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/Proxmox.sh)" Follow the script’s prompts to optimize and configure your Proxmox setup. Step 6: Create a Virtual Machine (VM) Go to your server in the Proxmox interface and click Create VM. Enter a name and other details for your VM. Select the ISO image for your VM installation. Configure system options, disk space, CPU, memory, and network settings. Click Finish to create the VM. Step 7: Start and Manage Your VM Locate your new VM in the resource tree on the left. Click on the VM to view and modify its settings. Click Start to power on your VM. Conclusion By following these steps, you can seamlessly install Proxmox and enhance its capabilities with the tteck Proxmox script. Proxmox’s intuitive interface and robust features make virtualization management a breeze.

March 15, 2025 · 2 min · TC

How to Remove a Cluster and Revert Proxmox to Standalone Mode

How to Remove a Cluster and Revert Proxmox to Standalone Mode Need to revert your Proxmox node to a standalone setup? Here’s a step-by-step guide to help you safely remove the cluster configuration and restore standalone functionality. Steps to Remove a Cluster Stop Cluster Services Run the following commands to stop cluster-related services: systemctl stop pve-cluster corosync Force Local Mode Enable local mode for the Proxmox configuration file system: ...

March 15, 2025 · 2 min · Taner

Implementing Distributed Locking with Redis and IDistributedLock

Implementing Distributed Locking with Redis and IDistributedLock Distributed locking is a critical feature for ensuring resource safety in distributed applications. Here’s how you can implement a distributed lock using the IDistributedLock interface and Redis as the backing store, leveraging the StackExchange.Redis library. Step 1: Implement the IDistributedLock Interface Let’s start by creating the RedisDistributedLock class to implement the IDistributedLock interface: using StackExchange.Redis; using System; using System.Threading.Tasks; public class RedisDistributedLock : IDistributedLock { private readonly IDatabase _database; private readonly string _lockKey; private string _lockToken; public RedisDistributedLock(IDatabase database, string lockKey) { _database = database; _lockKey = lockKey; _lockToken = Guid.NewGuid().ToString(); } public async Task<bool> AcquireLockAsync(string resource, TimeSpan leaseTime) { _lockToken = Guid.NewGuid().ToString(); return await _database.StringSetAsync(resource, _lockToken, leaseTime, When.NotExists); } public async Task RenewLockAsync(TimeSpan leaseTime) { if (!await _database.StringGetAsync(_lockKey).ConfigureAwait(false).Equals(_lockToken)) { throw new InvalidOperationException("Cannot renew a lock that is not held."); } await _database.KeyExpireAsync(_lockKey, leaseTime); } public async Task ReleaseLockAsync() { var token = await _database.StringGetAsync(_lockKey); if (token == _lockToken) { await _database.KeyDeleteAsync(_lockKey); } } public void Dispose() { ReleaseLockAsync().GetAwaiter().GetResult(); } } Step 2: Create a Sample Console Application Next, build a console application to demonstrate the functionality of the RedisDistributedLock: ...

March 15, 2025 · 2 min · TC

Installing and Configuring UFW on Debian: A Step-by-Step Guide

Installing and Configuring UFW on Debian: A Step-by-Step Guide Uncomplicated Firewall (UFW) is a user-friendly interface for managing iptables on Linux systems. This guide walks you through installing and configuring UFW on Debian to secure your server. 1. Update Package List Make sure your package index is up to date: sudo apt-get update 2. Install UFW Install the UFW package using: sudo apt-get install ufw 3. Check UFW Status Verify UFW’s current status: ...

March 15, 2025 · 2 min · Taner

Intel Core Ultra 7 155U vs AMD Ryzen 7 8840HS: A Performance Showdown

Intel Core Ultra 7 155U vs AMD Ryzen 7 8840HS: A Performance Showdown Deciding between the Intel Core Ultra 7 155U and the AMD Ryzen 7 8840HS? Let’s break down their specs and performance to help you pick the right one for your needs. Intel Core Ultra 7 155U Cores and Threads: 12 cores, 14 threads Base Clock Speed: 1.70 GHz Max Turbo Frequency: 4.80 GHz Architecture: Meteor Lake Integrated Graphics: Intel Iris Xe 4 Core Graphics TDP: 15W Manufacturing Process: 7 nm AMD Ryzen 7 8840HS Cores and Threads: 8 cores, 16 threads Base Clock Speed: 3.30 GHz Max Turbo Frequency: 5.10 GHz Architecture: Zen 4 Integrated Graphics: AMD Radeon 780M TDP: 28W Manufacturing Process: 4 nm Performance Comparison Both processors pack a punch, but their strengths vary depending on the task. ...

March 15, 2025 · 2 min · TC

Mastering Aspect-Oriented Programming (AOP): Concepts and Examples

Mastering Aspect-Oriented Programming (AOP): Concepts and Examples Aspect-Oriented Programming (AOP) is a programming paradigm that takes modularity to the next level. It allows you to neatly separate cross-cutting concerns like logging, security, or transaction management from your main business logic. Think of it as an enhancement to Object-Oriented Programming (OOP) that brings even more structure and reusability to your codebase. link to link to Key Concepts of AOP Here’s a quick dive into the foundational elements of AOP: ...

March 15, 2025 · 2 min · Taner

Mastering Aspect-Oriented Programming (AOP): Concepts and Examples

To create a code generator that automatically caches any function with a cache attribute that takes a duration, you can use a source generator in .NET. Source generators allow you to generate additional source code at compile time. Step 1: Define the Cache Attribute First, define the cache attribute that will be used to mark methods for caching: using System; [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] public sealed class CacheAttribute : Attribute { public CacheAttribute(int durationInSeconds) { DurationInSeconds = durationInSeconds; } public int DurationInSeconds { get; } } Step 2: Create the Source Generator Next, create the source generator that will generate the caching logic for methods marked with the CacheAttribute. ...

March 15, 2025 · 3 min · Taner

Mastering Aspect-Oriented Programming (AOP): Concepts and Examples

RedisDistributedLock Implementation in Aspect-Oriented Programming (AOP) Aspect-Oriented Programming (AOP) lends itself well to distributed resource management tasks such as locking. Below is an implementation of a Redis-based distributed lock using the StackExchange.Redis library, focusing on resource isolation and concurrency control. RedisDistributedLock Class Here is the complete implementation: using StackExchange.Redis; using System; using System.Threading.Tasks; public class RedisDistributedLock : IDisposable { private readonly IDatabase _redisDb; private readonly string _lockKey; private readonly string _lockValue; private bool _acquired; public RedisDistributedLock(IDatabase redisDb, string resourceKey) { _redisDb = redisDb; _lockKey = $"lock:{resourceKey}"; _lockValue = Guid.NewGuid().ToString(); // random token } /// <summary> /// Attempts to acquire a lock for the specified lock key with a given expiry. /// </summary> /// <param name="expiry">Duration for lock expiry.</param> /// <returns>True if the lock was acquired; otherwise, false.</returns> public async Task<bool> AcquireAsync(TimeSpan expiry) { _acquired = await _redisDb.StringSetAsync( key: _lockKey, value: _lockValue, expiry: expiry, when: When.NotExists); return _acquired; } /// <summary> /// Releases the lock if it’s still held by this instance. /// </summary> public async Task ReleaseAsync() { if (_acquired) { // Verify token before deleting. var currentValue = await _redisDb.StringGetAsync(_lockKey); if (currentValue == _lockValue) { await _redisDb.KeyDeleteAsync(_lockKey); } _acquired = false; } } /// <summary> /// Cleanup method ensuring the lock is freed. /// </summary> public void Dispose() { ReleaseAsync().GetAwaiter().GetResult(); } } Acquiring and Releasing the Lock Using the RedisDistributedLock class to acquire and release locks ensures concurrency control in distributed systems. ...

March 15, 2025 · 2 min · Taner