Page 1 of 2

Changes:EXIT xzm

Posted: 08 Feb 2025, 20:40
by dreadbird
Version 1.1 released see post viewtopic.php?p=102087#p102087 - Original version
Version 2.0 released viewtopic.php?p=102217#p102217 - Definative version

Im proud to release v1.0 of save-changesnew Updated 02/11/2025

Shortwave (Post by dreadbird #102020)

save-changes new with developer buddy https://drive.google.com/file/d/1AbntHP ... sp=sharing porteus 5.01 and 5.1

hotfix one small change if you want a more accurate diff file
/usr/local/save-changesnew/recentchangessearch.sh line 306 change to comm 23 small typo nemesis isnt effected. regarding diff file

xzm sha1sum 1390253bf3d408e45e00de0e99d8b79d5524e123

recent changes aka developer buddy for nemesis https://drive.google.com/file/d/1i7yoYd ... p=sharing .xzm

xzm sha1sum 5f3287bc4b23a2f4284c2d74cf2e3aec5a9922ca



It is exactly the same as changes-commit. but uses rsync and outputs a log of only files changed in your /Downloads folder and in /tmp

commands

save-changesnew
recentchanges

it includes a start menu icon for saving changes easily on Changes:EXIT

to include or exclude directories open the script in /opt/porteus-scripts/save-changesnew #template is the same as changes-exit.conf

recentchanges is a powerful command that can grab any new files and puts them in rntfiles.xzm in /tmp

lets say you compiled a program. type recentchanges 30 or recentchanges 60. if you type recentchanges the default is 5 minutes.

The custom built filter in recentchanges filters out system files and captures any new files you wanted. it will log the manifest of the .xzm. it will show the entire system changes during those 30 or 60 seconds in a seperate log. it will also latch onto an old search in /tmp and compare those in the scanning. very effective. ie do you want a snapshot of all files that are 5 hours old? recentchanges 18000 will grab every single file and put it into an .xzm for you to see (Filtered). Those are the filtered files. A log of that 18000 seconds of unfiltered files will be output. you will also get a difference log which compares the previous search with the new one. Ok these are all the system files for 18000 seconds. run the command again say 5 minutes later and you can see what difference in the diff file. very useful

recentchanges <------ pull files 5 minutes old or newer (filtered) and do a system search 5 minutes of all files
recentchanges 327 <------ " 327 seconds " " system 327 seconds

rntfiles.xzm
rntfilesmanifiest
rntfilesTransferlog
(<------------------------ custom built filter ensures these are files you are concerned about filters out .cache files ect ------------------------->)
rntfilesxSystemchanges5
rntfilesxSystemDiffFromLastSearch5
(<----------------------- unfiltered files all files on your sytem 5 minutes or newer ----------------------------------------------------------------------------->)

the program intelligently moves all old searches into a new directory /rntfilesUNIQUEID

the rntfilesxSystemchanges file will show any new files in the last 5 minutes and the difference file is whats new since your last 5 minute search


recenthanges search
this will do a file only search and put the result in /Downloads

you can specify recentchanges search s for seconds. ie recentchanges search 5000 will search for all new files almost 2 hours old. if you just type recentchanges search it will default to 5 minutes.

You get unfiltered items
xSystemchanges60
xSystemDiffFromLastSearch60

recentchanges search /home/guest/myfile.txt <---- search for files newer than a file (Results filtered as you dont want unnecessary files)
recentchanges search myfile.txt


recentchanges compile
dynamically build a custom filter with automatically generated sed commands to drag and drop into /opt/porteus-scripts/recentchanges script.

supports deepscan and regular scan. you can adjust the script to set the forward and back delta.

This will ensure it works perfectly for your system. The default setup is pretty good but if youre doing compile you might want to run recentchanges compile and see where youre at with the filter.

Addons
Shortwave (Post by dreadbird #101886)

these addons take the exact save-changesnew script and modifies it so when you save changes it also creates the module in /tmp for the power user. or /mnt/sda1/extramod for hdd script. What does this do? well if you saved 20 times. you have 20 modules you can roll back to any point in time. Useful for developing or replacing that timesync system backup app. Same thing as a windows restore point.

so if you use the power user addon. You would backup your current changes folder somewhere. call it changes9. So if you at anytime you want to roll back you can. Also if you lose your changes folder you can use changes9 and still connect with those modules. so lets say you accidently deleted a file. Ok well archive 5 has it. so that one time you can go back and grab a file is worth it
if you started from a new changes folder it would always connect. as all modules start from start point 1

Changes:EXIT xzm

Posted: 09 Feb 2025, 01:58
by vinnie
Will it also work on nemesis?
However, why don't you implement the ability to enter a start time in addition to the elapsed time?
I used to do something similar using the timestamp of a file touched before starting to execute operations

Changes:EXIT xzm

Posted: 09 Feb 2025, 05:08
by Vic
Hey vinnie

Check out dreadbird's other thread

Save work

Vic

Changes:EXIT xzm

Posted: 09 Feb 2025, 07:56
by dreadbird
vinnie wrote:
09 Feb 2025, 01:58
Will it also work on nemesis?
However, why don't you implement the ability to enter a start time in addition to the elapsed time?
I used to do something similar using the timestamp of a file touched before starting to execute operations
I could put that in the recentchanges search filename.txt

What’s kind of neat is how useful the timestamp is and then being able to use awk to process the column data of a text file. Can manipulate and do anything with the info.

What the program also does is feed in the time stamp into a while loop and if the file doesn’t exist it prints file does not exist. So you can kind of see cache data.

About nemesis I’ll look into it with 1.0 release I can now go back and condense the code so checks are in place such as default user. I have it grabbing the username through the call if you look at the top it gets passed to itself when asking for root pass. Yup the idea is I used stuff I found on the forum and make it work with all versions of porteus and provide a means anyone can easily modify these and make their own

Changes:EXIT xzm

Posted: 09 Feb 2025, 20:03
by dreadbird
I added

recentchanges search /home/guest/myfile.txt <------------------ search for all files newer than
recentchanges search myfile.txt

it took me a while to implement because you have to parse the filename from the abosolute path call. managed to get it so it works both absolute and local directory.
Also you can search all files newer than a directory even

Obviously with this search you would want to filter out files you dont want to see. So it gets passed through a filter and even excludes the /Downloads/rntfiles because they would be picked up as well. I have it working nicely. recentchanges search or search 600 say these are quick system file searches and are Unfiltered.

If anyone sees something that needs to be fixed that would be helpful and I can fix it and update it right away. I thoroughly and I mean thoroughly tested everything. Will also update as I condense the code a bit. Will also look into porteus nemesis

Changes:EXIT xzm

Posted: 10 Feb 2025, 19:33
by dreadbird
Sending in update. cleaned code went over using [] instead of [[ ]] for portability. minor tweaks and stress testing.

nemesis is missing |bc ill switch it over

I managed to switch the time over.

user passes $2 30 seconds

argONE=$2
w="."$(( $2 * 166 ))

qtn=$(( $argONE / 60 ))

if [ "$qtn" == "0" ]; then
qtn=$w
fi

30/60 in bash is 0

so we fake the decimal. w comes out to .4980 minute.

I managed to convert it to nemesis so I made a module recentchanges.xzm for it if you want it. I tested it and works good so far.

Changes:EXIT xzm

Posted: 11 Feb 2025, 14:46
by dreadbird
Can anyone give me a whats up on nemesis? where the script locations are? what to do after installation? what package manager do I use? any help would be greatly appreciated. I just ran it on the vm and was barely able to code on it lol

setup-pman
and pman? anything else I should type

Changes:EXIT xzm

Posted: 11 Feb 2025, 19:41
by vinnie
I am not the most skilled user here.
However, “psearch” is used to search for programs in the arch repositories (artix) and pmod to install them.
“wtf” gives you a list of some useful function but definitely not all of them.

In the module "core" in /usr/local/bin you have this command, I think almost all of nemesis:

Code: Select all

activate              deactivate         mloop               setup-network
add-loop-devices      dir2xzm            modules-activation  setup-system
arc2xzm               firstrun           nemaster            setup-time
archivemount          get-devel          pkg2xzm             uloop
aufs-insert           httpfs2            pman                update-kernel
aufs-remove           lsxzm              psu                 whichmod
backup-config-module  makeinitrd         setup-config-pman   xactivate
build-vbox            man                setup-keyboard      xdeactivate
convertz              mirrorlist-toggle  setup-locale        xzm2dir
These are in the same dir of gui xzm:

Code: Select all

autologin       fmanager               mount-iso     unmount-module
bbprofile       gtkdialog              mount-module  update-menu
browser         gui-autostart          pinstaller    uxt
create-module   gvfs-partition-toggle  save-session  vbox-build
extract-module  make-changes           terminal      xdm

Changes:EXIT xzm

Posted: 11 Feb 2025, 22:40
by dreadbird
Update. After getting it setup on nemesis I found out about the name spacing in the file search.

Porteus developer buddy supports newer than file or folder with space s
recentchanges search /home/local/my\ folder\ withspace\my file.txt Search for all filtered files newer than. I updated the developer buddy on the porteus to support that . Ill update the nemesis one as well.

recentchanges search /home/local/myfolder/myfile.txt or search /home/local/myfolder work on nemesis but if you need to include spaces hold off on that for now I have to go back and update some variables. ** updated to include with spaces now **

went over both and brought them to same

Changes:EXIT xzm

Posted: 11 Feb 2025, 22:57
by dreadbird
vinnie wrote:
11 Feb 2025, 19:41
I am not the most skilled user here.
However, “psearch” is used to search for programs in the arch repositories (artix) and pmod to install them.
“wtf” gives you a list of some useful function but definitely not all of them.

In the module "core" in /usr/local/bin you have this command, I think almost all of nemesis:

Code: Select all

activate              deactivate         mloop               setup-network
add-loop-devices      dir2xzm            modules-activation  setup-system
arc2xzm               firstrun           nemaster            setup-time
archivemount          get-devel          pkg2xzm             uloop
aufs-insert           httpfs2            pman                update-kernel
aufs-remove           lsxzm              psu                 whichmod
backup-config-module  makeinitrd         setup-config-pman   xactivate
build-vbox            man                setup-keyboard      xdeactivate
convertz              mirrorlist-toggle  setup-locale        xzm2dir
These are in the same dir of gui xzm:

Code: Select all

autologin       fmanager               mount-iso     unmount-module
bbprofile       gtkdialog              mount-module  update-menu
browser         gui-autostart          pinstaller    uxt
create-module   gvfs-partition-toggle  save-session  vbox-build
extract-module  make-changes           terminal      xdm
ill try it out for sure i get a bit overwhelmed learning a new distro but its close enough to porteus that I may just do coding in there if I can figure it out. I went back to porteus 5.01 and its super nice way easier on the eyes with 144hz than the virtual machine im using for 5.1. virtual box and crappy graphics. I just got to find the script directory in nemesis and a nice text editor

Changes:EXIT xzm

Posted: 13 Feb 2025, 08:14
by dreadbird
dialed everything in. minor tweaks to give feedback works great. going forward any changes will be new versions posted here.


with the current configuration with recentchanges search you get your system results. now as I am just developing this the difference file should be different than what it is. if you want to change it line306 should be 23 not 13. So what this does is the difference file will show exactly the files during the timesearch that changed. I will change it in future releases. lets take a 5 minute search as an example rntfilesxSystemchanges5. thats all system files for 5 minutes. if you run that same command again youll get a difference file. if you run it say 2 minutes later the difference file will show files that changed during your timed search. So that tells you its frequently accessed. so once again change it to 23 on line 306 of recentchangessearch.sh.

now if you ran the same search 7 minutes later the difference file will be exactly the same as the search you did 7 minutes ago. ie they cant compare because the 5 minute duration is expired. But this in of itself is useful because you can see ok in that 5 minutes those files were there and now these files are here. So its very effective if you do it close to each other or far apart. actually perfect.


So going forward I plan to:

create another file called absent items. so it will take the old search and if a file existed at 15:37 and your new search includes that time ie from 15:34 - 15:42. your rntfilesxSystemchanges480 will have all files 8 minutes old or newer. you get a difference file to show you the differences from the last search. Then an absent items list will show exactly the items that appeared in the earlier search during the time of your current search. but obviously have been deleted ie cache items ect.

I could simplify this and just have the rntfilesxSystemchanges480 and an absent file. so it would show instantly the files that were deleted. So the rntfilesxSystemchanges480 file is the main file. the rest are just extrass

A suggestions file for recentchanges command the one that grabs the .xzm. I will build in detection that if a file is created within the duration of your search and is blocked by the filter that it lists it in the suggestion. I can build in aggregation that ok your program was compiled from 03-13 seconds. therefor we want to include files from 03-13 everywhere possible and add it to the suggestions.


so recentchanges is working well and I dont plan to do anything big but I can certainly put more code behind the scenes to make things work above and beyond

Changes:EXIT xzm

Posted: 14 Feb 2025, 17:36
by dreadbird
I got it figured out. so the difference file. lets say you did recentchanges search for the 5 minute search. you do it an hour later or sometime later as an example. The difference file will be exactly the same as the search you did an hour ago. Because the time elapsed. This is useful as you can see in that 5 minutes those files were created. But now these files are here.

What if they overlap? the difference file will show unique items from that time and some of those overlap your new search so if you look at the difference file you can see which files were modified or deleted. I put in some more code so that it will do what it does but then below it will say

difference file contents:

"The regular difference content"

"Applicable to your search
Modified 02-14-2025 15:34:07 /var/log/file
Deleted 02-14-2025 15:36:34 /home/guest/Downloads/mydocument"

and these items at the bottom are only exactly during your search so its super useful. So the rntfilesxSystemchanges is useful for seeing all new files. then if you wanted to see the differences you can easily get a summary in the difference file. I can append data to this file as its not used to parse during the search. Remember the difference file has only unique items that dont show in the Systemchanges. So the applicable to your makes it easy to read. So I can tweak it to be very useful

Changes:EXIT xzm

Posted: 15 Feb 2025, 06:54
by dreadbird
Updated version 1.1 updated 02/20/2025
save-changesnew with developer buddy 1.1
https://drive.google.com/file/d/12Hf1X6 ... drive_link .xzm porteus 5.01 and 5.1
xzm sha1sum a13755394e45eb82d87e9905f756ef28b162a082

- The same as changescommit but with rsync
- A log file is made in /Downloads of all changes saved
- To exclude directories change the variable in save-changesnew script
- Includes developer buddy (recentchanges command)

developer buddy 1.1 NMS
https://drive.google.com/file/d/1E0zKxP ... drive_link .xzm Nemesis
xzm sha1sum 7fe7e651f51e4c4d9a80643871911be209e3e94e

- just developer buddy (recentchanges command)


About developer buddy
https://docs.google.com/document/d/1EJA ... sp=sharing

Changes:


updated developer buddy to 1.1 regarding diff file and proper feedback

updated to directory structure of nemesis. moved to /usr/local/bin

tweaked the diff file to show information about files that cross match during search. gives additional info modified or deleted. All items on the diff list are unique items ie just different times. so it will show applicable to your search. This gives you an idea of what files are constantly changing or removing themselves such as .cache items.

stress tested various scenarios to ensure proper feedback.



Current ideas
As with the find command it includes .cache items that are created in the future. was thinking of changing cache items that have time dates as such with.

9999-99-99 99:99:99

for instance 60 second search

2025-02-15 19:05:37 /home/guest/.cache/plasma_theme_breeze-dark_v5.116.0.kcache
2025-02-15 19:05:37 /var/log/syslog
2025-02-15 19:06:08 /var/log/messages
2025-02-15 19:06:09 /etc/ld.so.cache
2025-02-15 19:06:09 /root/.xauthGkx7S3
2025-02-15 19:06:09 /var/cache/ldconfig/aux-cache
2025-02-15 19:06:09 /var/log/secure
2025-02-15 19:06:10 /home/guest/.cache/mesa_shader_cache_db/part0/mesa_cache.idx
2025-02-16 03:03:34 /etc/fstab
2025-02-16 03:03:34 /etc/random-seed
2025-02-16 03:03:34 /usr/lib64/gio/modules/giomodule.cache
2025-02-16 03:03:34 /usr/share/glib-2.0/schemas/gschemas.compiled
2025-02-16 03:03:34 /usr/share/mime/XMLnamespaces
2025-02-16 03:03:34 /usr/share/mime/aliases


9999-99-99 99:99:99 /etc/fstab
9999-99-99 99:99:99 /etc/random-seed
9999-99-99 99:99:99 /usr/lib64/gio/modules/giomodule.cache
9999-99-99 99:99:99 /usr/share/glib-2.0/schemas/gschemas.compiled
9999-99-99 99:99:99 /usr/share/mime/XMLnamespaces
9999-99-99 99:99:99 /usr/share/mime/aliases


Next I could condense the code a bit but having the filter in each file is the most user friendly. the main filter for grabbing the .xzm in recentchanges is the one you would customize based for only grabbing truely new files that are made. Then the filter in recentchanges search myfile.txt should show more than a tweaked recentchanges filter. so it has its own as you want to know slightly more.

I will have a look and see if I can function call from recentchanges search to recentchanges and use the filter from. That would reduce some lines. If I do that then Ill go back and condense the code some more. Again every step I take is for user friendlyness. I commented everything so its easy to modify and read in each script file

then the compilesearch filter is tweaked to lift the /etc folder and could be tweaked based off lifting elements of the filter and running compile to see if you need to filter those and then go back and configure recentchanges filter for grabbing your .xzm with recentchanges.

Changes:EXIT xzm

Posted: 16 Feb 2025, 02:14
by dreadbird
Confirmed I cant change cache items to 9999-99-99 99:99:99. it just distrupts the continuity of the logging. as the system is being normally used those cache items that have times in the future dont show up they are usually right after system boot. If they do show up they are in common with the difference file and things gel quite well.

The cool thing is the difference file filters those out as they are in common with the old search and the new search. So the difference file is working correctly. It will either show things specific to your search or if it was at another time it will show the previous search in the diff file. Which in of itself is useful.


Next I will be implementing aggregation and figurative analysis for the recentchanges .xzm search. It will in the background determine the average file time then take that average and go behind the filter insearch of all files within that time. Then a file called rntfilesSuggestions will be output to show you if files blocked by the filter are likely part of your application or desired files. As we know sometimes your filter may be set wrong for the setup you need

Changes:EXIT xzm

Posted: 17 Feb 2025, 17:39
by dreadbird
Added when you call recentchanges to make an .xzm

rntfilesItemsFilteredout text file

the exact system items filtered out from the .xzm. so a quick glance and you can notice if you need to adjust the filter

file does not exist changed to
FILEDOES -NOTEXIST