انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: saleh143 در 17 مهر 1401، 11:07 بظ
-
سلام دنبال راهی هستم که بشه از فایلهای مهم مثل فایل های کانفیگ پشتیبان گرفت اما ابزاری براش ندیدم
چون همه فایل ها رو با nano ویرایش میکنم شاید یک راهش این باشه اول تموم فایل هایی که با nano ویرایش شدن رو لیست کنم و بعدش کپی ولی نمیدونم چه جوری میشه ؟
-
deja-dup
-
ucf
-
deja-dup
راستش ابزاری تو محیط ترمینال هم بشه ازش استفاده کرد و اینکه کل پوشه مثلا etc رو کپی نکنه میخام
-
ucf
چه جوری ازش استفاده کنم ؟ یه جور version control هست ؟ مثلا میشه فقط چند تا فایلی که کانفیگشون رو خودم ویرایش کردم ازشون پشتیبان گرفت ؟
-
این اسکریپت رو براتون نوشتم که بتونید از هر فایلی که با nano ادیت میشه، یک نسخه پشتیبان هم تهیه کنید:
۱- سورس کد زیر رو در فایلی به نام nanoback و در مسیری که جزو PATH هست قرار میدید.
#!/bin/bash
if [ -z "$1" ]
then
echo "[Error] The file is not specified!"
exit
fi
if [ -z "$2" ]
then
BACKUP_DIR="/root/nanoback"
else
BACKUP_DIR="$(eval realpath $2)"
fi
echo "[Notice] Backups directory: $BACKUP_DIR"
CONFIG_FILE="$1"
BACKUP_FILE="$BACKUP_DIR$(eval realpath $1)"
BACKUP_PATH=$(eval dirname $BACKUP_FILE)
nano "$CONFIG_FILE"
mkdir -pv $BACKUP_PATH
cp -v $CONFIG_FILE $BACKUP_PATH
پیشنهاد من اینجاست:
sudo nano /usr/local/bin/nanoback
۲- دسترسی اجرایی به فایلمون میدیم
sudo chmod +x /usr/local/bin/nanoback
مثال:
۱- ویرایش etc/fstab/ با nano و ذخیره بکاپ در مسیر root/nanoback/
sudo nanoback /etc/fstab
۲- ویرایش etc/fstab/ با nano و ذخیره بکاپ در مسیر مورد نظر /home/alih/configs/
sudo nanoback /etc/fstab /home/alih/configs/
-
ممنون خیلی کاربردی بود :) خوبیش اینه که آخرین نسخه فایل رو نگه میداره و این خیلی خوبه
برای فایل های که قبلا ویرایش شدن هم توی zsh با دستور
cat /home/user/.zsh_history | grep "sudo nano"
میشه از فایل های ویرایش شده لیست گرفت و بعد هم پشتیبان گرفت
-
این اسکریپت رو براتون نوشتم که بتونید از هر فایلی که با nano ادیت میشه، یک نسخه پشتیبان هم تهیه کنید:
۱- سورس کد زیر رو در فایلی به نام nanoback و در مسیری که جزو PATH هست قرار میدید.
#!/bin/bash
if [ -z "$1" ]
then
echo "[Error] The file is not specified!"
exit
fi
if [ -z "$2" ]
then
BACKUP_DIR="/root/nanoback"
else
BACKUP_DIR="$(eval realpath $2)"
fi
echo "[Notice] Backups directory: $BACKUP_DIR"
CONFIG_FILE="$1"
BACKUP_FILE="$BACKUP_DIR$(eval realpath $1)"
BACKUP_PATH=$(eval dirname $BACKUP_FILE)
nano "$CONFIG_FILE"
mkdir -pv $BACKUP_PATH
cp -v $CONFIG_FILE $BACKUP_PATH
این اسکریپت یه مشکلی داره. اگه سعی کنید به nano آپشن بدید، اسکریپت درست کار نمیکنه.
-
یه سوییچ جالب از خود nano یک بکاپ از نسخه قبل از ویرایش میگیره:
nano /etc/fstab -BC ~/
-B, --backup
When saving a file, back up the previous version of it, using the current filename suffixed with a tilde (~).
-C directory, --backupdir=directory
Make and keep not just one backup file, but make and keep a uniquely numbered one every time a file is saved -- when backups are enabled (-B). The uniquely numbered files are stored
in the specified directory.
فقط ایرادش اینه که به جای ایجاد دایرکتوریهای داخلی، / رو تبدیل به ! میکنه. مثلا اسم فایل بکاپ مثال بالا میشه:
!etc!fstab~
-
جالبه اینجوری یه نسخه از فایل قبل ویرایش پشتیبان میگیره
-
برای کانفیگهای شخصی، یک مخزن گیت به نام dotfiles ایجاد کنید و اون داتفایلهای home رو اونجا بذارید.
برای بقیه هم که دوستان راهنمایی کردند.
-
بله ممنون